美文网首页
Java中的Collections.sort()使用

Java中的Collections.sort()使用

作者: rainingfall | 来源:发表于2019-10-24 09:41 被阅读0次

在最近的开发中,需要对一些数据对象按照某一规则进行排序的操作,由于对象实例一般都是存放在List、Map等集合中,自然想到使用Collections类中的sort方法来对既定集合进行排序。下面通过Person类按照年龄age属性的排序来说明Collections.sort的一般使用方法

1、基础的Person类

    Person类

2、一般的输出

不进行排序的List集合

输出结果:

[Person [age=25, name=张三], Person [age=24, name=王五], Person [age=30, name=李四]]

结果很显然,List集合中的对象是无序对象。

3、增加Comparable接口的Person类并进行排序

使用Collections.sort()进行排序

在上述测试函数中,增加Collections.sort(personList);编译器会告知Person需要实现Comparable接口

为Person类实现Comparable接口,并实现Comparable接口的compareTo方法

compareTo方法的返回值

输出结果

[Person [age=24, name=王五], Person [age=25, name=张三], Person [age=30, name=李四]]

4、无法改变源文件的类如何进行排序

有些情况,在使用第三方jar包时或者给定类不希望增加接口时,如何通过进行排序?Colletions类中也提供了另外一种方式来进行排序,即通过Comparator来实现

Comparator实现

输出结果

[Person [age=24, name=王五], Person [age=25, name=张三], Person [age=30, name=李四]]

5、comparator 以及 comparable的区别

comparator:基础类(Person类)不需要进行修改,符合POJO风格,比较方法由排序者自行定义,便于扩展

comparable接口:基础类通过实现接口方法设定既定排序,扩展性差,与基础类耦合度太高

欢迎加入微信公众号

相关文章

  • Java comparable 和 comprator

    排序 在java 中我们对ArraryList 中的数据进行排序;通常可以使用Collections.sort()...

  • Java中的Collections.sort()使用

    在最近的开发中,需要对一些数据对象按照某一规则进行排序的操作,由于对象实例一般都是存放在List、Map等集合中,...

  • Java中Collections.sort()的使用!

    在日常开发中,很多时候都需要对一些数据进行排序的操作。然而那些数据一般都是放在一个集合中如:Map,Set ,Li...

  • Java中进行中文排序

    项目中遇到一个问题,需要使用Java进行名称的排序输出。此时,使用 Collections.sort(source...

  • Java集合排序

    Java API提供了两种方法来排序: 一、Collections.sort(List list) 使用此API排...

  • 解决java.lang.IllegalArgumentExcep

    今天在项目里使用 Collections.sort 方法是报错了 我的修改方案如下 java对compareTo方...

  • Java8 Collections.sort()及Arrays.

    本文主要介绍Java8 中Arrays.sort()及Collections.sort()中Lambda表达式及增...

  • Java sort原理

    基本情况 Java中sort方法主要有Collections.sort,Arrays.sort方法。并且Colle...

  • Java Collections.sort() 方法

    查看这个方法时借鉴了Java中Collections.sort()排序详解 - 薛瑄的博客 - CSDN博客 和 ...

  • Java排序类-Collections.sort()的使用

    使用背景 如以上,实体类里的属性有不同的权重,如年、月、日,我们需要通过权重大小将list中的对象排序。 第一步 ...

网友评论

      本文标题:Java中的Collections.sort()使用

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