Java之List.steam().sorted(Comparator.comparing())排序异常解决方案
创始人
2025-01-09 21:07:12
0

使用steam().sorted(Comparator.comparing())对List集合里的String类型字段进行倒序排序,发现倒序失效。记录解决方案。

异常代码如下:

 customerVOList = customerVOList.stream()                 .sorted(Comparator.comparing(CustomerVOVO::getCustomerRate).reversed())                 .collect(Collectors.toList());

getCustomerRate 是String类型的,存的是double类型的值,要根据这个字段倒序返回,发现这种方法排序是乱的。

解决方案一

        // 把String类型字段转换成Double类型进行自然升序排序 customerVOList = customerVOList.stream()                                 .sorted(Comparator.comparingDouble(v -> Double.valueOf(v.getCustomerRate())))                                 .collect(Collectors.toList());         // 先自然排序然后再倒序         Collections.reverse(customerLoanMapVOList);

这种方案需要先把String类型转换成Double类型自然升序排序后再使用Collections对集合进行倒序,reversed()用不了,用了就报错 "Cannot resolve method 'getCustomerRate' in 'Object'"。

解决方案二

        customerVOList = customerVOList.stream()                                 .sorted((v1,v2) -> Double.valueOf(v2.getCustomerRate()).compareTo(Double.valueOf(v1.getCustomerRate())))                                 .collect(Collectors.toList());

直接不要Comparator,一段代码搞定。

延伸

使用steam().sorted(Comparator.comparing())对自定义对象集合中的字段进行排序,避免直接对String类型字段进行自定义规则排序,可能会出现未知问题。

相关内容

热门资讯

正品辅助!佛手在线大菠萝辅助,... 正品辅助!佛手在线大菠萝辅助,epoker免费透视脚本,技巧教程(有挂教程)-哔哩哔哩【无需打开直接...
指南书辅助"来几局辅... 指南书辅助"来几局辅助器开挂"开挂(插件)辅助软件(有挂实锤);亲,来几局辅助器开挂这款游戏原来确实...
透视苹果版!雀姬手机辅助脚本,... >>您好:雀姬手机辅助脚本确实是有挂的,很多玩家在这款雀姬手机辅助脚本游戏中打牌都会发现很多用户的牌...
固有有开挂"牵手跑辅... 固有有开挂"牵手跑辅助"详细开挂辅助挂真实有挂(透视教程);无需打开直接搜索薇:136704302 ...
正版开挂!花花生活圈辅助工具安... 正版开挂!花花生活圈辅助工具安装教程,约局吧能不能开挂,德州教程(有挂神器)-哔哩哔哩1、下载安装好...
总结辅助"大当家脚本... 总结辅助"大当家脚本一键挂机"开挂(软件)辅助下载(真的有挂);无需打开直接搜索加(薇:136704...
透视免费!新道游修改器,微乐陕... 透视免费!新道游修改器,微乐陕西小程序破解器(透视)开挂辅助工具wpk教程1、下载安装好微乐陕西小程...
素来有辅助"乐乐围棋... 素来有辅助"乐乐围棋入门辅助"详细开挂辅助下载有挂工具(必胜教程);亲,乐乐围棋入门辅助这款游戏原来...
透视安卓版!荆州圣盛游戏辅助,... 透视安卓版!荆州圣盛游戏辅助,wejoker辅助软件视频(透视)开挂辅助器技巧教程;无需打开直接搜索...
妙计开挂"创思维激k... 较多好评“微乐万能挂官网”开挂(透视)辅助教程 了解更多开挂安装加(136704302)微信号是一款...