
产品要求,对数据进行一定的排序处理,因为种种原因,通过数据库排序后,还需要使用程序进行排序。
疑问使用stream 的排序方式是稳定排序么,即在排序条件值相同时,顺序会被打乱么
验证import lombok.Data;
import lombok.experimental.Accessors;
import java.util.*;
import java.util.stream.Collectors;
@Data
@Accessors(chain = true)
class User{
private String name;
private Integer age;
}
public class Test {
public static void main(String[] args) {
List list=new ArrayList<>();
list.add(new User().setName("zhang").setAge(12));
list.add(new User().setName("wang").setAge(12));
list.add(new User().setName("li").setAge(12));
list.add(new User().setName("zhao").setAge(12));
list.add(new User().setName("liu").setAge(12));
System.out.println(list);
System.out.println(list.stream()
.sorted(Comparator.comparing(User::getAge))
.collect(Collectors.toList()));
}
}
结果:
[User(name=zhang, age=12), User(name=wang, age=12), User(name=li, age=12), User(name=zhao, age=12), User(name=liu, age=12)] [User(name=zhang, age=12), User(name=wang, age=12), User(name=li, age=12), User(name=zhao, age=12), User(name=liu, age=12)]结论及铁证
是稳定排序的,点入sorted方法,说明如下
For ordered streams, the sort is stable.
说中文就是:对于已经排序的流,排序结果是稳定的
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)