美文网首页
集合常用的排序方法详解之单元素集合篇

集合常用的排序方法详解之单元素集合篇

作者: 技术指北 | 来源:发表于2020-12-06 22:25 被阅读0次

常用的集合类无非是List、Set,及其他们的子类,其中List从jdk1.8开始是内置了排序方法的,且需要传入一个比较器作为参数;

源码内置排序

1、基础类型元素集合排序

基础类型的引用类,String

如:List<Integer>、List<Stirng>、Set<Integer>、Set<String>

1)对于List来说,直接用内置排序即可,例如:

List<Integer> list = new ArrayList<>();
 list.sort(new Comparator<Integer>() {
   @Override
   public int compare(Integer o1, Integer o2) {
     //升序
     return o1.compareTo(o2);
     //降序
    // return o2.compareTo(o1);
   }
 });

注意:注释中的升序降序代码

List 也可以使用流(Stream)的排序:

流排序

2)对于Set,有两种方式:

首先新建一个set集合:

代码截图

第一种:使用工具类Collections的排序,Collections的排序还是调用List的内置排序,所以需要把set转为list集合:

源码 升序排序

降序需要重写compareTo方法:

降序排序

第二种:使用流(Stream)中的排序方法:

流的排序不传参时也是默认升序,


流的升序排序

注意代码中划红线的地方,必须要用toList(),不然排序不起作用。

反例如下图:

排序失败代码示例

使用流时的降序,需要重写Comparator类的compareTo() 方法:


流的降序

这里总结一下Stream的排序跟List内置的排序处理的区别:

1)最大的一个区别是,Stream是对目标集合的深度复制的数据进行排序然后返回一个新的集合,对目标集合没有任何影响;而List内置的排序是直接操作的目标集合,直接将目标进行排序,不会生成新的集合。

2)另一个是,使用流排序,还可以开启并行流(parallelStream),在数据量多的时候能够大大提升性能。

ps:建议使用流的排序。

上面介绍的工具类都是基于在JDK8(含)之后的版本才支持的;

JDK8之前还有另一种排序方式,即转为数组,利用Arrays的排序,然后再转为list:

Arrays的内置排序

以上即是单元素集合的常见排序,当然各位友人是不喜欢,也可以自行实现排序逻辑,使用双重循环、递归之类的原始方式,好了,感谢大家的观看,后续将会整理对象集合的排序详解记得关注我哦

相关文章

  • 集合常用的排序方法详解之单元素集合篇

    常用的集合类无非是List、Set,及其他们的子类,其中List从jdk1.8开始是内置了排序方法的,且需要传入一...

  • JavaSE基础 TreeSet集合(红黑树数据结构)

    本文主要介绍TreeSet集合的基本使用方法 TreeSet之自然排序 自然排序(元素具备比较性):让元素所属的类...

  • JJJJJava集合

    集合与数组的区别 Collection集合的方法 常用集合的分类 Collection 接口的接口 对象的集合(单...

  • Java List Array排序

    List 排序 Java API针对集合类型的排序提供了2个方法 如果集合里面元素都实现了Comparable接口...

  • 集合

    目录 集合简介 创建集合 集合常用方法 集合的运算 1. 集合简介 集合(set):一个无序不重复元素的集,基本功...

  • Swift 函数学习笔记

    sorted 排序函数 map遍历集合元素 filter过滤集合 reduce 遍历集合,计算元素 reverse...

  • Java常用排序算法--40个Java集合面试问题和答案--单例

    Java常用排序算法/程序员必须掌握的8大排序算法 40个Java集合面试问题和答案 单例模式讨论篇:单例模式与垃...

  • 2019-01-01

    基于List、Set集合,及工具类Collections集合元素排序整理 List集合 1.1 List集合介绍 ...

  • scala的数据结构——集

    scala当中的集是不重复元素的集合,集不会对元素进行排序,而且是以“哈希”方法对元素进行组织,所以使用集合的时候...

  • 排序算法(二):选择排序

    选择排序算法维护一个待排序集合和一个已排序集合,每轮迭代,从待排序集合中选择一个最小(最大)元素,添加到已排序集合...

网友评论

      本文标题:集合常用的排序方法详解之单元素集合篇

      本文链接:https://www.haomeiwen.com/subject/qjmawktx.html