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类型字段进行自定义规则排序,可能会出现未知问题。

相关内容

热门资讯

透视了解"wepok... 透视了解"wepoker透视方法"wepoker辅助透视软件(总是是真的辅助app)-哔哩哔哩1、任...
必看攻略!微乐小程序黑科技(外... 必看攻略!微乐小程序黑科技(外挂),微乐自建房插件如何安装本来的确有挂1、每一步都需要思考,不同水平...
现就发布提示!胡乐辅助脚本的正... 现就发布提示!胡乐辅助脚本的正确使用方法视频,蜀渝牌血战到底辅助(一贯存在有脚本)-哔哩哔哩胡乐辅助...
事发当天"cloud... 事发当天"cloudpoker外开挂"aapoker透视方法(切实是真的辅助工具)-哔哩哔哩1、打开...
此事迅速冲上热搜!盛世辅助器,... 此事迅速冲上热搜!盛世辅助器,hhpoker透视脚本下载(透视)总是真的有辅助app(哔哩哔哩)1、...
总算了解!!微信小程序黑科技(... 总算了解!!微信小程序黑科技(外挂),微乐自建房透视确实新版有挂1、完成辅助器v3.3的残局,帮助玩...
透视攻略"竞技联盟辅... 透视攻略"竞技联盟辅助插件"hhpoker外开挂靠谱吗(好像存在有辅助软件)-哔哩哔哩hhpoker...
出现新变化!潘潘讲故事辅助器,... 出现新变化!潘潘讲故事辅助器,wpk是真的还是假的(透视)原来是有辅助神器(哔哩哔哩)1、潘潘讲故事...
事发当天!兴动互娱辅助工具下载... 事发当天!兴动互娱辅助工具下载,闲逸辅助软件下载(一贯有挂插件)-哔哩哔哩1、完成兴动互娱辅助工具下...
分享开挂内幕!微乐小程序免费黑... 分享开挂内幕!微乐小程序免费黑科技(外挂),微乐智能辅助app其实存在有挂1、不需要AI权限,帮助你...