Java8流sorted排序-多字段升序降序Null值排序


多读多写多记录,多学多练多思考。 ----------- Banuit Gang(香柚帮)


// 1.一降一升,注意两种写法
// 先以name升序,升序结果进行name降序,再进行age升序(有效)
list.stream().sorted(Comparator.comparing(User::name).reversed().thenComparing(User::age));
// 先以name降序,再进行age升序(有效)
list.stream().sorted(Comparator.comparing(User::name,Comparator.reverseOrder()).thenComparing(User::age)); 

// 2.双降,注意两种写法
// 先以name升序,升序结果进行name降序,再进行age升序,结果就是name和age都降序(测试无效,不知道写法是不是错了,求指点)
list.stream().sorted(Comparator.comparing(User::name).reversed().thenComparing(User::age).reversed);
// 先以name降序,再进行age降序(有效)
list.stream().sorted(Comparator.comparing(User::name,Comparator.reverseOrder()).thenComparing(User::age,Comparator.reverseOrder())); 


// 3.包含Null数据的集合排序
// nullsFirst,age为空值的排在在前边,nullsLast相反
sorted(Comparator.comparing(User::age, Comparator.nullsFirst(Integer::compareTo))) 

注意:两种写法的排序是不一样的,第一种是得到排序结果后再排序,第二种是直接进行排序,很多人会混淆导致理解出错,第二种更好理解,建议使用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值