gpt4 book ai didi

java - 使用 Lambda 表达式对多个属性进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:59:30 24 4
gpt4 key购买 nike

这是我的 list :

Name: Ben     || Age: 5 || Group: 1
Name: Andy || Age: 6 || Group: 2
Name: Charlie || Age: 6 || Group: 2
Name: Ben || Age: 5 || Group: 1
Name: Andy || Age: 5 || Group: 2
Name: Charlie || Age: 5 || Group: 1

我想按 Group 对列表进行排序,如果 Group 相等则按 Age 排序,如果 Age > 等于 Name。但到目前为止,我只能使用 Lambda 表达式按一个属性排序:

list.sort((Object o1, Object o2) -> o1.getGroup().compareTo(o2.getGroup()));

如果我尝试

o1.getGroup().compareTo(o2.getGroup()) && o1.getAge().compareTo(o2.getAge())

原来是错误...

最佳答案

将 lambda expression 更改为 lambda {block},并且您不必指定参数类型:

list.sort((o1, o2) -> {
int cmp = o1.getGroup().compareTo(o2.getGroup());
if (cmp == 0)
cmp = Integer.compare(o1.getAge(), o2.getAge());
if (cmp == 0)
cmp = o1.getName().compareTo(o2.getName());
return cmp;
});

关于java - 使用 Lambda 表达式对多个属性进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33326657/

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