一,比较器基本使用

当我们使用Arrays.sort(Object[] a)对对象数组进行排序时,该对象所在的类必须实现Comparable接口,这个接口用于指定对象的排序规则。

在Comparable接口中是用泛型定义的,因此子类需要实现特定的类在Comparable接口中只有一个

compareTo方法,该方法返回一个int类型。

在这个方法中只能返回三个int类型的值:1,-1,0

例如设置一个学生的类,按照学生的年龄进行排序。

public class Student implements Comparable<Student>{private int age;private String name;public Student(int age, String name) {this.age = age;this.name = name;}@Overridepublic String toString() {return "Student{" +"age=" + age +", name='" + name + '\'' +'}';}@Overridepublic int compareTo(Student o) {if(this.age>o.age){return 1;}else if(this.age<o.age){return -1;}else {return 0;}}public static void main(String[] args) {Student[] students = new Student[3];students[0] = new Student(18,"XiaoMing");students[1] = new Student(20,"XiaoHong");students[2] = new Student(19,"XiaoLi");for (Student student : students) {System.out.println(student);}Arrays.sort(students);System.out.println();for (Student student : students) {System.out.println(student);}}
}

输出结果:

Student{age=18, name='XiaoMing'}
Student{age=20, name='XiaoHong'}
Student{age=19, name='XiaoLi'}Student{age=18, name='XiaoMing'}
Student{age=19, name='XiaoLi'}
Student{age=20, name='XiaoHong'}

Java中Comparable比较器的基本用法相关推荐

  1. JAVA语言-比较器Comparator(java中Comparable和Comparator的区别)

    文章目录 一.什么是Comparator 二.Java compare方法和compareTo方法 三.java中Comparable和Comparator的区别 Comparator的例子 三.de ...

  2. 简单介绍Java中Comparable和Comparator

    转载自 简单介绍Java中Comparable和Comparator Comparable 和 Comparator是Java核心API提供的两个接口,从它们的名字中,我们大致可以猜到它们用来做对象之 ...

  3. Java中Comparable和Comparator接口区别分析

    本文要来详细分析一下Java中Comparable和Comparator接口的区别,两者都有比较的功能,那么究竟有什么区别呢,感兴趣的Java开发者继续看下去吧. Comparable 简介 Comp ...

  4. java comparator相等_详解Java中Comparable和Comparator接口的区别

    详解Java中Comparable和Comparator接口的区别 发布于 2020-7-20| 复制链接 摘记: 详解Java中Comparable和Comparator接口的区别本文要来详细分析一 ...

  5. Java中BigDecimal类介绍及用法

    Java中BigDecimal类介绍及用法 Java中提供了大数字(超过16位有效位)的操作类,即 java.math.BinInteger 类和 java.math.BigDecimal 类,用于高 ...

  6. Java中Comparable和Comparator实现对象比较

    Java中Comparable和Comparator实现对象比较 目录 一. Comparator 二. Comparable 三.比较 当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comp ...

  7. 【Java学习笔记之二十九】Java中的equals和==的用法及区别

    Java中的"equals"和"=="的用法及区别 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String(&quo ...

  8. Java中PreparedStatement和Statement的用法区别

    Java中PreparedStatement和Statement的用法区别 (2012-08-01 11:06:44) 转载▼ 标签: 杂谈   1. PreparedStatement接口继承Sta ...

  9. Java中static的含义和用法

    Java中static的含义和用法 static:静态的,用于修饰成员(成员变量,成员方法); 1.被static所修饰的变量或者方法会储存在数据共享区; 2.被static修饰后的成员变量只有一份! ...

  10. Java中栈和队列的用法 Stack And Queue

    Java中栈和队列的用法 栈的实现 使用Java的集合类Stack boolean isEmpty();//判断当前栈是否为空,等价于empty(); synchronized E peek();// ...

最新文章

  1. Linux的tty设备介绍
  2. 操作系统:Win10系统下LocalNow和Roaming文件夹介绍
  3. zabbix运行脚本监控ggsci报错
  4. 纪事本 乱码_纪事地图和Yahoo Cloud服务基准
  5. JPA和Hibernate级联类型的初学者指南
  6. 【C语言】数据类型转换的问题
  7. python实例属性引用-python之对象(实例)
  8. MYSQL-创建事件
  9. python第三周笔记_Python第四周 学习笔记(1)
  10. perl将字符串时间转换成 epoch time
  11. background-color:#e5eecc; border:solid 1px #c3c3c3;
  12. onCreateView中加载大位图
  13. 数字电路基础知识——时序逻辑电路之存储器(SRAM、DRAM、ROM)
  14. 企业微信第三方应用开发小白版
  15. Python GUI - 利用Tkinter制作个性签名设计软件!
  16. 删库跑路(错误0x80070091:目录不是空的)该如何解决???还是别解决了。。。
  17. 鸿蒙智慧屏和pro有什么区别,华为智慧屏V55i和荣耀智慧屏PRO区别对比
  18. 20220904小红书笔试
  19. 安装 window10 系统
  20. 测试用例大体上包含哪些内容?

热门文章

  1. 阴阳师2017 7服务器维护,《阴阳师》手游4月17日维护更新公告
  2. uniapp 实现抽奖幸运大转盘功能
  3. ubuntu无法关机,卡在黑屏界面
  4. 从Windows中删除Node.js
  5. python exec 返回值_Python exec()用法及代码示例
  6. 20211高考成绩查询,青岛理工大学教务系统URP成绩查询、网上选课查分 http://211.64.192.21/,精英高考网...
  7. 闭关之 Vulkan 应用开发指南笔记(四):绘制、几何体片段处理、同步和回读数据
  8. ArcGIS中.shp矢量文件和.lyr图层文件的区别
  9. EXCEL单元格换行操作
  10. migration java_如何重置migration