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
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


