list排序的几种方法
List<Integer> list = new ArrayList<>();list.add(3);list.add(5);list.add(1);
Collections工具类,升序排:
Collections.sort(list);
System.out.println(list);
Console:
[1, 3, 5]
Collections工具类,降序排:
Collections.reverse(list);
System.out.println(list);
Console:
[5, 3, 1]
java8新特性,升序排:
list.sort(Integer::compareTo);
System.out.println(list);
Console:
[1, 3, 5]
list.stream().sorted((a,b)->a.compareTo(b)).forEach(System.out::println);
list.stream().sorted(Comparator.naturalOrder()).forEach(System.out::println);
System.out.println(list);
Console:
1
3
5
1
3
5
[3, 5, 1]
值得注意的是sorted只是创建一个流对象排序的视图,而不会改变原集合中元素的顺序。也就是说使用sorted方法原有集合的顺序实际上是没有发生变化的。
也可以使用自定义排序如下,效果一样,不过不够简洁
list.sort(new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o1-o2;}});
Console:
[1, 3, 5]
自定义排序,降序排:
list.sort(new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o2-o1;}});System.out.println(list);
Console:
[5, 3, 1]
补充: 针对集合中存在null的几种排序及测试结果。
@Testpublic void sort() {List<Integer> list = Lists.newArrayList();list.add(1);list.add(3);list.add(2);list.add(null);Ordering<Comparable> natural = Ordering.natural();Collections.sort(list, natural.nullsLast());System.out.println("list = " + list);// list = [1, 2, 3, null]Collections.sort(list, natural.nullsFirst());System.out.println("list = " + list);// list = [null, 1, 2, 3]list.removeIf(e -> Objects.isNull(e));Collections.sort(list);System.out.println("list = " + list);// list = [1, 2, 3]}
list排序的几种方法相关推荐
- python列表的排序方法_pythonlist排序的两种方法及实例
本文主要介绍了python list排序的两种方法及实例讲解.具有很好的参考价值,下面一起来看下吧 对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排 ...
- 按对象某属性排序的几种方法
按对象某属性排序的几种方法: 第一种,可以实现边添加边排序,需要用到TreeSet. 第二种,用数组存放对象们,但是不需单独取出某属性排列好再重存,而是在原数组上用比较器重新排一次序.需要用到Arra ...
- C++结构体多级排序的三种方法
C++结构体多级排序的三种方法 struct node{int chinese,math;char name[15]; }; 需求:按数学成绩从大到小排序 1.自定义比较器 //自定义比较函数 bo ...
- oracle进行排序,oracle排序的几种方法
1.创建数据库表 CREATE TABLE USER_INFO ( USERID VARCHAR2(10 BYTE) NOT NULL, USERNAME ...
- C# hashTable的遍历【2种方法】与排序【3种方法】
private void Form1_Load(object sender, EventArgs e) { Hashtable ht = new Hashtable(); ht.Add("j ...
- java的arraylist_Java ArrayList排序的3种方法
首页 > 基础教程 > 集合框架 > ArrayList类 Java ArrayList排序的3种方法 1. 使用Collections.sort()方法进行排序 ArrayList ...
- 计算机word降序排列怎么做,word中怎么进行排序的两种方法
word文档中表格除了作为我们的编辑和展示功能之外,还可以进行排序功能,十分方便,那么下面就由学习啦小编给大家分享下word中进行排序的技巧,希望能帮助到您. word中进行排序方法一: 步骤一:将光 ...
- python list列表排序的两种方法及实例讲解
对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排序 list.sort(func=None, key=None, reverse=False) Py ...
- list排序方法python_python list 排序的两种方法及实例讲解
对 list 进行排序,Python 提供了两个方法: 方法1. 用 list 的内建函数 list.sort 进行排序 list.sort(func=None, key=None, reverse= ...
- python list排序的两种方法及实例讲解
对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排序 list.sort(func=None, key=None, reverse=False) Py ...
最新文章
- kerberos简单介绍
- oracle中按指定条数批量处理的方法
- 静态程序分析chapter1 - 概述和两个重要步骤
- 计算机二级考试vb内容,计算机二级考试VB重点内容.doc
- Android Studio无法找到tool.jar解决方法!
- 从零写一个编译器(八):语义分析之构造符号表
- 二维码研究综述--传统图像处理方法
- 全站仪和手机连接软件_全站仪各方面应用的原理、操作及计算,看这篇就对了!...
- 记单词工具 百词斩 0124
- 台湾大学生来厦门参访交流
- kafka 主从同步入门
- C语言程序设计如何输入两行,求c语言高手编一个程序,题目要求如下: 输入有多组数据。 每组数据两行。 第一行包含一个正整数n(...
- 汇总站外seo方法和做法?
- nssa和stub_OSPF stub,totally stub , NSSA , totally nssa
- 艰难困苦,玉汝于成!
- 服务器系统事件id1001,WIN10事件查看器,ID1000,ID1001 問題
- 机器学习基础随笔(3)
- 京东热 key 探测框架新版发布JD-hotkey,单机 QPS 可达 35 万
- java中使用poi导出ppt(图片和表格)
- @Around环绕增强