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排序的几种方法相关推荐

  1. python列表的排序方法_pythonlist排序的两种方法及实例

    本文主要介绍了python list排序的两种方法及实例讲解.具有很好的参考价值,下面一起来看下吧 对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排 ...

  2. 按对象某属性排序的几种方法

    按对象某属性排序的几种方法: 第一种,可以实现边添加边排序,需要用到TreeSet. 第二种,用数组存放对象们,但是不需单独取出某属性排列好再重存,而是在原数组上用比较器重新排一次序.需要用到Arra ...

  3. C++结构体多级排序的三种方法

    C++结构体多级排序的三种方法 struct node{int chinese,math;char name[15]; }; 需求:按数学成绩从大到小排序  1.自定义比较器 //自定义比较函数 bo ...

  4. oracle进行排序,oracle排序的几种方法

    1.创建数据库表 CREATE TABLE USER_INFO ( USERID      VARCHAR2(10 BYTE)                 NOT NULL, USERNAME   ...

  5. C# hashTable的遍历【2种方法】与排序【3种方法】

    private void Form1_Load(object sender, EventArgs e) { Hashtable ht = new Hashtable(); ht.Add("j ...

  6. java的arraylist_Java ArrayList排序的3种方法

    首页 > 基础教程 > 集合框架 > ArrayList类 Java ArrayList排序的3种方法 1. 使用Collections.sort()方法进行排序 ArrayList ...

  7. 计算机word降序排列怎么做,word中怎么进行排序的两种方法

    word文档中表格除了作为我们的编辑和展示功能之外,还可以进行排序功能,十分方便,那么下面就由学习啦小编给大家分享下word中进行排序的技巧,希望能帮助到您. word中进行排序方法一: 步骤一:将光 ...

  8. python list列表排序的两种方法及实例讲解

    对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排序 list.sort(func=None, key=None, reverse=False) Py ...

  9. list排序方法python_python list 排序的两种方法及实例讲解

    对 list 进行排序,Python 提供了两个方法: 方法1. 用 list 的内建函数 list.sort 进行排序 list.sort(func=None, key=None, reverse= ...

  10. python list排序的两种方法及实例讲解

    对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排序 list.sort(func=None, key=None, reverse=False) Py ...

最新文章

  1. memcached 实验论文
  2. (翻译)Real-UID,Effective-UID,Saved-UID区别
  3. mysql远程连接 Host * is not allowed to connect to this MySQL server
  4. C~K要找女朋友了!!!_JAVA
  5. 秒杀系统必须考虑的 3 个技术问题!
  6. Attention 扫盲:注意力机制及其 PyTorch 应用实现
  7. XML内部DTD约束 Day24
  8. Problem 2. number题解
  9. 从零开始搭建Ubuntu 环境下的Android 源码开发环境
  10. Flink批处理练习
  11. jni 调用sock_raw -- 端口扫描
  12. Linux - 修改系统的max open files、max user processes (附ulimit的使用方法)
  13. python开发的网络调试助手_Linux/windows/mac 下的socket网络通信调试助手 UDP/TCP
  14. 企业微信机器人消息发送(文本、图片、文件)
  15. 向量检索基础方法总结
  16. 第P9周:YOLOv5-Backbone模块实现
  17. 苹果搜索广告ASA“保姆级”开户教程来袭!拿来吧你!
  18. java 监听控制台输入
  19. ARM到底是冯诺依曼结构还是哈佛结构?
  20. MNIST数据集的gist特征提取(含全部实例代码下载地址)

热门文章

  1. 洛谷OJ P1263 宫廷守卫
  2. 做研究用hg19还是hg38基因组?一行代码将hg19的bw文件转成hg38
  3. 成熟数据模型(CDM/LDM)
  4. 建立个人博客的基本流程
  5. 玩转 IoT 数据,做“大预言家”!
  6. selenium-滑动验证码实现
  7. windows7无法登陆网络上的计算机,网络连接正常无法上网,教您网络连接正常无法上网解决方法...
  8. 用HMCAD1511实现的四通道示波器方案,单通道模式1G采样率,双通道模式500M,4通道模式250M采样率
  9. 基于XGBoost的句子相似度匹配
  10. CSDN帐号被盗申诉无法获得回复