当前位置: 首页 > news >正文

Java之List.steam().sorted(Comparator.comparing())排序异常解决方案

使用steam().sorted(Comparator.comparing())对List<T>集合里的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类型字段进行自定义规则排序,可能会出现未知问题。

相关文章:

  • python前端开发
  • 遥感云计算的一个拐点
  • Elasticsearch(9) gauss的使用
  • [scikit-learn] 第一章 初识scikit-learn及内置数据集介绍
  • 【四 (4)数据可视化之 Ploty Express常用图表及代码实现 】
  • Linux 自动备份 mysql 脚本
  • Windows10安装RubyRails步骤
  • Apache zookeeper kafka 开启SASL安全认证
  • vite打包时发布时,放在服务器的二级目录中
  • 解析编程中不可或缺的基础:深入了解结构体类型
  • 【Linux-网络编程】
  • 【漏洞复现】大华智慧园区综合管理平台SQL注入漏洞
  • 【vue baidu-map】实现百度地图展示基地,鼠标悬浮标注点展示详细信息
  • 配置vscode环境极简版(C/C++)(图文)
  • 在idea中配置tomcat服务器,部署一个项目(下载教程加链接)
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【5+】跨webview多页面 触发事件(二)
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • Android Studio:GIT提交项目到远程仓库
  • bootstrap创建登录注册页面
  • Django 博客开发教程 8 - 博客文章详情页
  • eclipse的离线汉化
  • es6要点
  • Redux 中间件分析
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • SQLServer之索引简介
  • Vue 重置组件到初始状态
  • vue.js框架原理浅析
  • 反思总结然后整装待发
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 今年的LC3大会没了?
  • 理清楚Vue的结构
  • 每天10道Java面试题,跟我走,offer有!
  • 你不可错过的前端面试题(一)
  • 前端知识点整理(待续)
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 首页查询功能的一次实现过程
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • Spring Batch JSON 支持
  • 浅谈sql中的in与not in,exists与not exists的区别
  • 如何正确理解,内页权重高于首页?
  • ​io --- 处理流的核心工具​
  • ​低代码平台的核心价值与优势
  • ​油烟净化器电源安全,保障健康餐饮生活
  • #QT(TCP网络编程-服务端)
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • $.ajax中的eval及dataType
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (function(){})()的分步解析
  • (定时器/计数器)中断系统(详解与使用)
  • (多级缓存)缓存同步
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (九十四)函数和二维数组