关于jdk1.8的lamda表达式的常用规则二

1.利用lambda表达式把一个List中的对象中的某一个元素按照某个类型进行排序

为什么要这样写?再开发中有这样一种情况,后端返给前端的数据中,数值型的数据往往在实体对象中存的类型是String,如果直接用lambda表达式对这个String进行排序 结果是错的 ,比如说有两个String a=99.9 b=988.2,如果降序的话 结果是99.9在前 因为String比较的不是整体数值 而是一位一位的由左向右比较 所以需要先把String转换成bigdecimal或者其他类型进行比较 写法有两种:

第一种写法:构造比较器法
注意:如果想要倒叙 只需要把a和b的位置颠倒即可
rowList = list.stream().sorted((a,b)->
                    new BigDecimal(b.getPrice()).compareTo(new BigDecimal(a.getPrice()))).collect(Collectors.toList());
第二种写法:直接在comparing中构造匿名函数 
注意:这种方式只能正序 如果加上revered()倒叙就不对了 倒叙需要按照第一种方式来写
rowList = list.stream().sorted(Comparator.comparing(a->new BigDecimal(a.Price()))).collect(Collectors.toList());

 2获取一个list对象中的某一个元素的最大最小值的对象

String title = entryUserList.stream().max(Comparator.comparing(PotentialAnalysisRanking::getCreateTime))
.get()//这一步是获取最大值的对象
.getTitle(); //这一步是获取这个对象的某个元素

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值