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

List 集合指定值升序降序排列Comparator实现

升序排序
升序排序通常是指从小到大的排序。对于数值类型来说,可以直接使用 compareTo 方法,而对于其他类型,可以根据实际需求实现比较逻辑。
示例代码

import java.util.Comparator;
import java.util.List;
import java.util.ArrayList;class Spgg2BO {private String spdm;private String ggdm;private String ggmc;private Integer ggwz;public Spgg2BO(String spdm, String ggdm, String ggmc, Integer ggwz) {this.spdm = spdm;this.ggdm = ggdm;this.ggmc = ggmc;this.ggwz = ggwz;}public Integer getGgwz() {return ggwz;}
}public class Main {public static void main(String[] args) {List<Spgg2BO> spgg2List = new ArrayList<>();// 添加一些示例数据spgg2List.add(new Spgg2BO("001", "01", "规格一", 10));spgg2List.add(new Spgg2BO("002", "02", "规格二", 5));spgg2List.add(new Spgg2BO("003", "03", "规格三", 20));// 使用Comparator.comparing按ggwz升序排序spgg2List.sort(Comparator.comparing(Spgg2BO::getGgwz));// 输出排序后的结果for (Spgg2BO item : spgg2List) {System.out.println(item.getGgwz());}}
}

降序排序
降序排序是指从大到小的排序。对于数值类型,可以通过反转比较结果来实现降序排序。

示例代码

import java.util.Comparator;
import java.util.List;
import java.util.ArrayList;class Spgg2BO {private String spdm;private String ggdm;private String ggmc;private Integer ggwz;public Spgg2BO(String spdm, String ggdm, String ggmc, Integer ggwz) {this.spdm = spdm;this.ggdm = ggdm;this.ggmc = ggmc;this.ggwz = ggwz;}public Integer getGgwz() {return ggwz;}
}public class Main {public static void main(String[] args) {List<Spgg2BO> spgg2List = new ArrayList<>();// 添加一些示例数据spgg2List.add(new Spgg2BO("001", "01", "规格一", 10));spgg2List.add(new Spgg2BO("002", "02", "规格二", 5));spgg2List.add(new Spgg2BO("003", "03", "规格三", 20));// 使用Comparator.comparing按ggwz降序排序spgg2List.sort(Comparator.comparing(Spgg2BO::getGgwz).reversed());// 输出排序后的结果for (Spgg2BO item : spgg2List) {System.out.println(item.getGgwz());}}
}

在上面的降序排序示例中,我们使用了 Comparator.comparing(Spgg2BO::getGgwz).reversed() 方法来创建一个比较器,该比较器首先基于 getGgwz 方法获取的 ggwz 值进行比较,然后通过 .reversed() 方法来反转比较结果,从而实现降序排序。

总结来说,升序排序是按照自然顺序从小到大排序,而降序排序是按照相反的顺序从大到小排序。你可以通过改变比较器的实现方式来实现不同的排序顺序。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【学习笔记】5G-A时代物联网应用及策略研究
  • C++设计模式——Template Method模板方法模式
  • Renesa Version Board开发RT-Thread 之Client(WIFI)和上位机的数据传输
  • 如何使用小乌龟清除认证缓存、还原版本、定位及常用开发工具集成
  • 中间件解析漏洞
  • 领衔登榜!凯伦股份入选2024年度市级工业设计中心名单
  • 【弱监督时间动作定位】Probabilistic Vision-Language Representation for WSTAL 论文阅读
  • VBA进行excel坐标转换
  • JavaScript 条件分支语句if...else
  • 内核链表
  • Python作为客户端连接websocket
  • Webview Android性能优化
  • html+css网页设计 合十文化2个页面
  • adb remount Now reboot your device for settings to take effect
  • 中间件解析漏洞(附环境搭建教程)
  • [case10]使用RSQL实现端到端的动态查询
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 【5+】跨webview多页面 触发事件(二)
  • Date型的使用
  • Facebook AccountKit 接入的坑点
  • js作用域和this的理解
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • Vue2 SSR 的优化之旅
  • 那些被忽略的 JavaScript 数组方法细节
  • 前嗅ForeSpider教程:创建模板
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 终端用户监控:真实用户监控还是模拟监控?
  • 关于Android全面屏虚拟导航栏的适配总结
  • ​iOS实时查看App运行日志
  • ​linux启动进程的方式
  • ​马来语翻译中文去哪比较好?
  • "无招胜有招"nbsp;史上最全的互…
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #每日一题合集#牛客JZ23-JZ33
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • $refs 、$nextTic、动态组件、name的使用
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (不用互三)AI绘画:科技赋能艺术的崭新时代
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)EOS中账户、钱包和密钥的关系
  • (转载)Linux 多线程条件变量同步
  • .NET Core 版本不支持的问题
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NetCore发布到IIS
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .vimrc 配置项
  • @Transaction注解失效的几种场景(附有示例代码)
  • [04] Android逐帧动画(一)
  • [240812] X-CMD 发布 v0.4.5:更新 gtb、cd、chat、hashdir 模块功能
  • [android学习笔记]学习jni编程