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. kerberos简单介绍
  2. oracle中按指定条数批量处理的方法
  3. 静态程序分析chapter1 - 概述和两个重要步骤
  4. 计算机二级考试vb内容,计算机二级考试VB重点内容.doc
  5. Android Studio无法找到tool.jar解决方法!
  6. 从零写一个编译器(八):语义分析之构造符号表
  7. 二维码研究综述--传统图像处理方法
  8. 全站仪和手机连接软件_全站仪各方面应用的原理、操作及计算,看这篇就对了!...
  9. 记单词工具 百词斩 0124
  10. 台湾大学生来厦门参访交流
  11. kafka 主从同步入门
  12. C语言程序设计如何输入两行,求c语言高手编一个程序,题目要求如下: 输入有多组数据。 每组数据两行。 第一行包含一个正整数n(...
  13. 汇总站外seo方法和做法?
  14. nssa和stub_OSPF stub,totally stub , NSSA , totally nssa
  15. 艰难困苦,玉汝于成!
  16. 服务器系统事件id1001,WIN10事件查看器,ID1000,ID1001 問題
  17. 机器学习基础随笔(3)
  18. 京东热 key 探测框架新版发布JD-hotkey,单机 QPS 可达 35 万
  19. java中使用poi导出ppt(图片和表格)
  20. @Around环绕增强

热门文章

  1. 简单的RocketMQ生产者和消费者的开发示例demo(二)
  2. logrotate 的原理及使用
  3. POJ 1185 [NOI2001 D2T?] 炮兵阵地
  4. Java第二次pta大作业总结
  5. WiFi信号老不好,一口君给你支个招
  6. 超神学院计算机排名,超神学院电脑版
  7. 广东工业大学文远知行杯新生程序设计竞赛(牛客比赛)
  8. python获取MySQL自增ID序列
  9. NOIP大纲整理:(十六)反转问题与弹性碰撞
  10. oracle sub share pool简介以及 共享sql实现实质。