【Java】List排序方法(包括对象、Map等内部排序实现)
2022/8/15 14:54:00
本文主要是介绍【Java】List排序方法(包括对象、Map等内部排序实现),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言
- 日常开发中经常会对List集合做排序操作,JDK为我们提供了强大的排序方法,可以针对对象、Map、基本类型等进行正/倒排序操作。
- 参考博客:JAVA列表排序方法sort和reversed介绍, 以及排序时避免空指针异常_林临L的博客-CSDN博客_java sort 空指针
一、常规排序
/** * String类型的集合排序 */ void stringListTest() { List<String> list = Arrays.asList("王羲之", "张三丰", "vbe", "123", "李斯", "bf", "王淼", "鬼谷子", "415", "秦始皇"); list.sort(String::compareTo); // 正序 list.sort(Comparator.reverseOrder()); // 逆序 // Collections.sort(list); // Collections.sort(list,Comparator.reverseOrder()); } // 排序前:[王羲之, 张三丰, vbe, 123, 李斯, bf, 王淼, 鬼谷子, 415, 秦始皇] // 正序后:[123, 415, bf, vbe, 张三丰, 李斯, 王淼, 王羲之, 秦始皇, 鬼谷子] // 逆序后:[鬼谷子, 秦始皇, 王羲之, 王淼, 李斯, 张三丰, vbe, bf, 415, 123]
/** * Integer类型的集合排序 */ void integerListTest() { List<Integer> list = Arrays.asList(2, 4, 1, 54, 2); list.sort(Integer::compareTo); // 正序 list.sort(Comparator.reverseOrder()); // 逆序 } // 排序前:[2, 4, 1, -3, 34, -123, 0, 54, 2] // 正序后:[-123, -3, 0, 1, 2, 2, 4, 34, 54] // 逆序后:[54, 34, 4, 2, 2, 1, 0, -3, -123]
二、内部属性排序
实体类
@Data public class People { private String name; // 姓名 private Integer age; // 年龄 }
对内部属性排序
// 创建peopleList数据进行测试 // 排序前:[People(name=鬼谷子, age=2), People(name=bf, age=26), People(name=鬼谷子, age=44), People(name=王淼, age=99)] List<People> peopleList = new ArrayList<>(); // 对象单个属性正序排序 // [People(name=鬼谷子, age=2), People(name=bf, age=26), People(name=鬼谷子, age=44), People(name=王淼, age=99)] peopleList.sort(Comparator.comparing(People::getAge)); // 对象多个属性正序排序 // [People(name=bf, age=26), People(name=王淼, age=99), People(name=鬼谷子, age=2), People(name=鬼谷子, age=44)] peopleList.sort(Comparator.comparing(People::getName).thenComparing(People::getAge); // 对象多个对象排序,并且要求年龄倒序(先对name正序,然后对age倒序) // [People(name=bf, age=26), People(name=王淼, age=99), People(name=鬼谷子, age=44), People(name=鬼谷子, age=2)] peopleList.sort(Comparator.comparing(People::getName).thenComparing(People::getAge, Comparator.reverseOrder()));
这篇关于【Java】List排序方法(包括对象、Map等内部排序实现)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-29设计Element UI表单组件居然如此简单!
- 2024-12-28一步到位:购买适合 SEO 的域名全攻略
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign学习入门:轻松掌握微服务通信
- 2024-12-27OpenFeign学习入门:轻松掌握微服务间的HTTP请求
- 2024-12-27JDK17新特性学习入门:简洁教程带你轻松上手
- 2024-12-27JMeter传递token学习入门教程
- 2024-12-27JMeter压测学习入门指南
- 2024-12-27JWT单点登录学习入门指南