gpt4 book ai didi

Java 8 - 使用 Comparator 以不同顺序比较多个字段

转载 作者:搜寻专家 更新时间:2023-11-01 04:00:27 26 4
gpt4 key购买 nike

我喜欢使用 Java 8 Comparator 根据三个属性对对象的 List 进行排序。要求按此顺序排序 - 姓名升序、年龄降序、城市升序。如果我在 `Age 上使用 reversed(),它也会反转之前排序的条目。这是我尝试过的:

Comparator.comparing((Person p) -> p.getName())
.thenComparingInt(p -> p.getAge())
.reversed()
.thenComparing(p -> p.getCity());

最佳答案

使用Comparator.reverseOrder():

.thenComparing(Person::getAge, Comparator.reverseOrder())

如果你想避免自动装箱,你可以这样做

.thenComparing((p1, p2) -> Integer.compare(p2.getAge(), p1.getAge()))

或者

.thenComparing(Comparator.comparingInt(Person::getAge).reversed())

关于Java 8 - 使用 Comparator 以不同顺序比较多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51565422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com