Java 对象自定义排序

实现对集合中元素的排序,这个元素可以是一个对象。

两种方式:

  • Comparable:内部比较器
  • Comparator:外部比较器

1. Comparable,内部比较器

  • 写在排序对象的内部
  • 排序接口
  • 一个实现了该接口的类,可以通过如下方法排序
    • Collections.sort
    • Arrays.sort
  • 该接口只有一个compareTo方法
class Person implements Comparable<Person>{private int age;private String name;...@Overridepublic int compareTo(Person person) {// 升序排列return this.getAge()-person.getAge();;}
}

2. Comparator,外部比较器

  • 匿名内部类的方式,在list需要排序的时候,才具体定义排序的规则。

  • 在java中,如果要对集合对象或数组对象进行排序,需要实现Comparator接口。

   //Lambda简化Comparator接口匿名内部类写法public static void main(String[] args) {List<Student> ls = new ArrayList<>();Student s1 = new Student("小明",25);Student s2 = new Student("小黑",23);Student s3 = new Student("小红",22);Collections.addAll(ls,s1,s2,s3); //collections工具类//按年龄排序Collections.sort(ls, new Comparator<Student>() {@Overridepublic int compare(Student o1, Student o2) {// 升序return o1.getAge() -o2.getAge();}});System.out.println(ls);//[Student{name='小红', age=22}, Student{name='小黑', age=23}, Student{name='小明', age=25}]//使用lambda简化Collections.sort(ls,(Student o3, Student o4) ->{return o3.getAge()-o4.getAge();});System.out.println(ls);}

Java Comparator比较器相关推荐

  1. 【Java 8 新特性】Java Comparator | 比较器

    Java Comparator | 比较器 比较器功能方法:compare(T o1, T o2) 1. 使用 Lambda 表达式定义 compare 2. 自定义 compare 实现比较器 比较 ...

  2. java comparator compare

    [Java 8 新特性]Java Comparator | 比较器_猫巳的博客-CSDN博客_javacomparator 非常好的文章. 有默认工具方法. 1. 反序 reversed 1. 创建某 ...

  3. Java核心API -- 7(Iterator迭代器、Comparable、Comparator比较器)

    1. Iterator迭代器 所有Collection的实现类都实现了iterator方法,该方法返回一个Iterator接口类型的对象,用于实现对集合元素迭代的便利.在java.util包下. 1) ...

  4. Java中的集合---------Collections 类---集合的工具类 Comparator比较器

    Collections 2.1 常用功能 java.utils.Collections是集合工具类,用来对集合进行操作.部分方法如下: public static <T> boolean ...

  5. 秒杀Java中的Comparator比较器

    教你使用Java中的Comparator比较器 一.知识点简述: 自定义比较器: Comparator:比较器 Comparator是一个接口,无法直接创建对象,需要实现类去创建 创建Comparat ...

  6. Java Comparator 珍藏版

    点击蓝色"程序猿DD"关注我哟 加个"星标",不忘签到哦 来源:开源技术大全 Java java.util.Comparator功能接口对对象集合强制进行排序. ...

  7. java8 lambda 排序算法,Java8中排序算法比较器的三种写法(使用lambda表达式实现Comparator比较器)...

    在涉及到数组, 集合等这些地方经常会需要用到排序算法, 在Java中的Collections类中有sort方法, 除了需要传入一个Comparator比较器, 或者需要排序的类实现了Comparabl ...

  8. java 实现中文排序,Java自定义比较器实现中文排序

    compareTo 方法 compareTo()是两个字符串对象比较大小,返回一个整数值,如果调用字符串对象大,返回正整数,反之,返回负整数.相等则返回0.compareTo()是两个字符串对象按AS ...

  9. 进阶08 Collections实现类、Comparator比较器接口

    Collections 常用功能 java.utils.Collections是集合工具类,用来对集合进行操作.部分方法如下: public static <T> boolean addA ...

最新文章

  1. 日期与unix时间戳之间的转换C++实现
  2. Windows下安装Redis服务
  3. mysql聚合函数不存在的数据_SELECT子句中不存在聚合函数时的GROUP BY行为
  4. python3安装mysql模块_Python3.6 下 安装MySql
  5. C#中将字符串内容写入到txt文件中
  6. Discuz! 7.2以下版本及各uc产品api接口Get webshell漏洞
  7. 阿里巴巴开源 Spring Cloud Alibaba,加码微服务生态建设
  8. 深度学习之卷积神经网络 AlexNet
  9. 计算机网络-信道复用技术
  10. 精品软件 推荐 卡巴斯基安全软件 本人使用过的效果最好的杀毒软件之一哟...
  11. mongodb插入数据_MongoDB插入
  12. 语音处理:Python实现音频文件声道分离批量处理
  13. 基于Flask框架实现Mock Server
  14. 凯恩帝k1000ti参数设置_凯恩帝公司K1000T系统用户手册.pdf
  15. 天气预报小程序 微信小程序期末大作业(含文档)
  16. 智商情商哪个重要_智商和情商哪个更重要 一辩辩词
  17. 利用Python实现scissors-rock-paper-lizard-Spock小游戏
  18. opencv光线补偿_教你了解摄像机的背光补偿
  19. 物理建模钢琴-Modartt Pianoteq Pro v6.7.0 WiN
  20. Kumo的目标是让你离不开它!

热门文章

  1. 哪些录音转文字免费软件好用?分享这三款好用的软件
  2. 来看看今天推荐的好用软件吧
  3. JSP+MySQL绿色环保网站(含论文)
  4. [paper]Interpretable Representation Learning for Healthcare via Capturing Disease Progression
  5. 电压,电流,电阻的关系就是欧姆定律
  6. Python while循环
  7. 构建富Internet应用程序 :使用OpenLaszlo、Eclipse Laszlo IDE和Web Tools
  8. 服务器培训协议,员工培训与服务器
  9. laypage分页java例子_laypage分页插件的使用
  10. 性能测试-----压力测试,负载测试,强度测试,容量测试