产品要求,对数据进行一定的排序处理,因为种种原因,通过数据库排序后,还需要使用程序进行排序。
疑问使用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) { Listlist=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条)