Java 中的 Comparable 接口(附示例)

7 Apr 2025 | 阅读 2 分钟

Java Comparable 接口用于对用户定义类的对象进行排序。此接口位于 java.lang 包中,只包含一个名为 compareTo(Object) 的方法。它只提供一个排序序列,即您只能根据单个数据成员对元素进行排序。例如,它可以是学号、姓名、年龄或其他任何内容。

compareTo(Object obj) 方法

public int compareTo(Object obj): 它用于将当前对象与指定对象进行比较。它返回:

  • 正整数,如果当前对象大于指定对象。
  • 负整数,如果当前对象小于指定对象。
  • 零,如果当前对象等于指定对象。

我们可以对以下元素进行排序:

  1. 字符串对象
  2. 包装类对象
  3. 用户定义类对象

Collections 类

Collections 类提供静态方法用于对集合元素进行排序。如果集合元素是 Set 或 Map,我们可以使用 TreeSet 或 TreeMap。但是,我们不能对 List 的元素进行排序。Collections 类提供了对 List 类型元素进行排序的方法。

Collections 类用于排序 List 元素的的方法

public void sort(List list): 它用于对 List 的元素进行排序。List 元素必须是 Comparable 类型。

注意:String 类和包装类默认实现 Comparable 接口。因此,如果您将字符串或包装类的对象存储在列表、集合或映射中,它们默认将是 Comparable。


Java Comparable 示例

让我们看一个 Comparable 接口的示例,它根据年龄对列表元素进行排序。

文件:Student.java

文件:TestSort1.java

示例

输出

105 Jai 21
101 Vijay 23
106 Ajay 27

Java Comparable 示例:逆序

让我们看一个 Comparable 接口的相同示例,它根据年龄以逆序对列表元素进行排序。

文件:Student.java

文件:TestSort2.java

示例

输出

106 Ajay 27
101 Vijay 23
105 Jai 21

下一主题Java-comparator