网站首页 > 精选教程 正文
文章目录
- 前言
- 1.基础类型的集合排序:
- 2.实体类的集合排序传统:
- 3.Java8使用流式的排序:
- 结尾
前言
ArrayList是最常见最频繁我们java编程当中使用的集合类,往往进行集合操作的时候会进行排序操作,本文进行一些总结来方便大家进行操作集合类的时候能够更轻松的排序集合实现业务。
1.基础类型的集合排序:
@Test
public void sortTest(){
List<Integer>list=new ArrayList<>();
List<String>list2=new ArrayList<>();
list.add(10);
list.add(1);
list.add(9);
list.add(2);
Collections.sort(list);
System.out.println(list);
Collections.reverse(list);
System.out.println(list);
list2.add("2021-06-10 13:56:48");
list2.add("2021-06-11 13:56:48");
Collections.sort(list2);
System.out.println(list2);
Collections.reverse(list2);
System.out.println(list2);
}
此为基础类的排序,正序排序和倒序排序等,使用起来其实是非常方便的。
2.实体类的集合排序传统:
@Test
public void stuSortTest(){
List<Stu> stus = new ArrayList<>();
Stu stu1 = new Stu();
Stu stu2 = new Stu();
Stu stu3 = new Stu();
stu1.setName("张三");
stu1.setAge(30);
stu2.setName("李四");
stu2.setAge(20);
stu3.setName("王五");
stu3.setAge(60);
stus.add(stu1);
stus.add(stu2);
stus.add(stu3);
//对users按年龄进行排序
Collections.sort(stus, new Comparator<Stu>() {
@Override
public int compare(Stu o1, Stu o2) {
// 升序
//return o1.getAge()-o2.getAge();
//return o1.getAge()-o2.getAge();
// 降序
return o2.getAge()-o1.getAge();
// return o2.getAge().compareTo(o1.getAge());
}
});
// 输出结果
System.out.println(stus);
}
此为常用的比较传统的传递比较器的比较实体类的方法使用。当然如果是多条件的话直接在比较器中compare进行计算排序则可以,基本的比较规则为大于的在前面,小于的在后面。
3.Java8使用流式的排序:
@Test
public void stuSortTest2(){
List<Stu> stus = new ArrayList<>();
Stu stu1 = new Stu();
Stu stu2 = new Stu();
Stu stu3 = new Stu();
stu1.setName("张三");
stu1.setAge(30);
stu2.setName("李四");
stu2.setAge(20);
stu3.setName("王五");
stu3.setAge(60);
stus.add(stu1);
stus.add(stu2);
stus.add(stu3);
//正序排序
List<Stu> stuSortAsc= stus.stream().sorted(Comparator.comparing(o->o.getAge())).collect(Collectors.toList());
//倒序排序
List<Stu> stuSortDesc= stus.stream().sorted(Comparator.comparing(Stu::getAge).reversed()).collect(Collectors.toList());
System.out.println("正序:"+stuSortAsc);
System.out.println("倒序:"+stuSortDesc);
}
上面就是java8中流式的集合类通过传递比较字段进行排序达到排序目的。
结尾
上面就是总结的见过的比较常用的集合的排序的方法,其中个人比较推崇的还是java8中流式的排序,已经能够满足大部分的业务场景需求,代码看着比较简洁清楚,如果你也有想法沟通的话欢迎进行留言,或者关注我的公众号:Java时间屋进行交流。
- 上一篇: Python 列表(List)详解
- 下一篇: Java集合框架底层实现原理大揭秘
猜你喜欢
- 2025-04-26 图解 SQL 执行顺序,三连暴击
- 2025-04-26 十大排序算法时空复杂度
- 2025-04-26 java实现10种排序算法
- 2025-04-26 java实现冒泡排序
- 2025-04-26 10 个经典的 Java 集合面试题,看你能否答得上来?
- 2025-04-26 Java面试中常被问到的集合类深度解读
- 2025-04-26 Java ArrayList基本操作及高级用法
- 2025-04-26 使用组合、排列和产品进行彻底的 JUNIT5测试
- 2025-04-26 Redis 源码简洁剖析 - Sorted Set 有序集合
- 2025-04-26 常见的三种排序(冒泡排序、插入排序、选择排序)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)