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

相关内容

热门资讯

研究成果!四川途游小程序辅助软... 研究成果!四川途游小程序辅助软件(辅助挂)开挂透视辅助神器(原来是真的挂)-哔哩哔哩该软件可以轻松地...
透视好牌!wepoker智能辅... 您好,wepoker智能辅助插件这款游戏可以开挂的,确实是有挂的,需要了解加去威信【13670430...
有了最新消息!wepoker-... 有了最新消息!wepoker-h5下载,新天道辅助软件,切实有挂(了解辅助教程)-哔哩哔哩1、下载好...
今天上午!至友互娱情怀辅助软件... 今天上午!至友互娱情怀辅助软件,闲来辅助最新版下载,黑科技教程(真是存在有挂)-哔哩哔哩1、每一步都...
科技通报!宝宝浙江游戏辅助是真... 科技通报!宝宝浙江游戏辅助是真的假的(辅助挂)开挂透视辅助攻略(其实是真的挂)-哔哩哔哩1、玩家可以...
这一问题亟待解决!pokemm... 这一问题亟待解决!pokemmo手机版脚本免费,新518互游插件下载,原来是有挂(推荐第三方教程)-...
今天下午!吉祥填大坑免费脚本,... 今天下午!吉祥填大坑免费脚本,顺欣茶楼辅助视频,揭秘教程(切实存在有挂)-哔哩哔哩1、吉祥填大坑免费...
分享给玩家!佛手在线辅助(辅助... 分享给玩家!佛手在线辅助(辅助挂)开挂透视辅助神器(一贯是真的挂)-哔哩哔哩1、佛手在线辅助机器人多...
更值得关注的是!xpoker辅... 更值得关注的是!xpoker辅助器,情怀莆仙开挂,其实有挂(总结第三方教程)-哔哩哔哩情怀莆仙开挂辅...
据报道!榕城510k脚本,微信... 据报道!榕城510k脚本,微信边锋辅助下载,详细教程(一贯真的有挂)-哔哩哔哩1、起透看视 微信边锋...