Java8如何对Stream进行排序操作呢?
下文讲述Java8中对Stream进行排序操作的方法分享,如下所示:
例:
实现思路: 使用sorted()即可实现对Stream进行排序操作 如: sorted(): 产生一个新流,按自然顺序排序 sorted(Comparator comp): 产生一个新流,使用比较器顺序进行排序操作例: 新建一个User集合
list<User> users = Arrays.asList( new User("user-1",8), new User("user-3",18), new User("user-2",11), new User("user-5",17), new User("user-4",6) );
sorted()排序
@Test public void test2(){ users.stream() .map(User::getName) .sorted() .forEach(System.out::println); } 使用名字进行排序,将输出以下信息: user-1 user-2 user-3 user-4 user-5
例:
package com.java265; import java.util.Arrays; import java.util.List; public class testMain { /* * java265.com Sorted示例 */ public static void main(String[] args) { List<User> t = Arrays.asList(new User("user-1", 8), new User("user-3", 18), new User("user-2", 11), new User("user-5", 17), new User("user-4", 6)); t.stream().map(User::getName).sorted().forEach(System.out::println); System.out.println("============================"); /* 根据年龄排序 */ t.stream().sorted((x, y) -> Integer.compare(x.getAge(), y.getAge())) .forEach((y) -> System.out.println(y.getName() + "--" + "age:" + y.getAge())); } } class User { private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public User(String name, Integer age) { this.name = name; this.age = age; } public User() { } } --------运行以上代码,将输出以下信息----- user-1 user-2 user-3 user-4 user-5 ============================ user-4--age:6 user-1--age:8 user-2--age:11 user-5--age:17 user-3--age:18
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。