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

相关内容

热门资讯

黑科技科技“wepoke智能a... 黑科技科技“wepoke智能ai”wepoke辅助使用方法(透明挂)果然是真的有挂(有挂方法)-哔哩...
今日头条!“wpk到底有没有外... 今日头条!“wpk到底有没有外挂”wpk有外挂吗(wPK)从前真的有挂(有挂秘籍)-哔哩哔哩1、很好...
黑科技讲解“wepokeai代... 黑科技讲解“wepokeai代打”wepoke一定有挂(ai代打)都是是真的有挂(有挂功能)-哔哩哔...
实测交流“wpk到底有没有外挂... 1、实测交流“wpk到底有没有外挂”wpk透视辅助购买渠道(WPK)总是存在有挂(有挂存在)-哔哩哔...
黑科技了解“wepoke辅助插... 黑科技了解“wepoke辅助插件”wepoke辅助挂(透明黑科技)本来有挂(确实有挂)-哔哩哔哩;一...
必备科技“wpk到底有没有外挂... 必备科技“wpk到底有没有外挂”wpk德州ai辅助神器(WPK)从来真的是有挂(有挂技巧)-哔哩哔哩...
黑科技中牌率“wepokeai... 黑科技中牌率“wepokeai代打”wepoke有挂吗网上靠谱吗(辅助挂)竟然真的是有挂(有挂猫腻)...
玩家科普“wpk ai辅助”w... 玩家科普“wpk ai辅助”wpk透视辅助购买渠道(WpK)原先是有挂(有挂教程)-哔哩哔哩是一款可...
黑科技科技“wepoke辅助插... 黑科技科技“wepoke辅助插件”wepokeai代打技巧(ai代打)确实真的有挂(揭秘有挂)-哔哩...
玩家必备教程!“wpk到底有没... 玩家必备教程!“wpk到底有没有外挂”微扑克ai机器人(WpK)原先存在有挂(了解有挂)-哔哩哔哩;...