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(); //这一步是获取这个对象的某个元素