Java Stream中默认sort方法

Java Stream中默认sort方法,第1张

Java Stream中默认sort方法 来源

产品要求,对数据进行一定的排序处理,因为种种原因,通过数据库排序后,还需要使用程序进行排序。

疑问

使用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.

说中文就是:对于已经排序的流,排序结果是稳定的

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5574394.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存