如何在 Java 中排序列表

2025年3月17日 | 阅读 3 分钟

我们可以使用以下方法来排序列表

  • 使用 stream.sorted() 方法
  • 使用 Comparator.reverseOrder() 方法
  • 使用 Comparator.naturalOrder() 方法
  • 使用 Collections.reverseOrder() 方法
  • 使用 Collections.sort() 方法

Java Stream 接口

Java Stream 接口提供了两个用于排序列表的方法

sorted() 方法

Stream 接口提供了一个 sorted() 方法来排序列表。它定义在 `java.util` 包中的 Stream 接口中。它返回一个按自然顺序排序的流。如果元素不可比较,它将抛出 java.lang.ClassCastException。该方法的签名是:

参数

T:流元素的类型。

Java Stream.sorted(Comparator comparator)

它还返回一个根据提供的比较器排序的流。对于有序流,它是稳定的。该方法的签名是:

参数

  • T 是流元素的类型。
  • 要用于比较元素的比较器

示例

在下面的示例中,我们使用了以下方法:

  • 在 Java 8 中,stream() 是一个用于处理对象集合的 API。
  • collect() 方法用于从流中接收元素并将它们存储在集合中。
  • toList() 返回收集器,该收集器以出现顺序将所有输入元素收集到一个列表中。

示例

输出

How to sort a list in Java

Java Comparator.reverseOrder() 方法

`reverseOrder()` 是 `Comparator` 接口的一个方法,它定义在 `java.util` 包中。该方法返回一个强制执行自然顺序反序的比较器。在比较 null 时,它会抛出 NullPointerException。方法签名是:

`Comparable` 也是 `java.lang` 包中的一个接口。

参数

T:要比较的元素的 Comparable 类型。

示例

输出

How to sort a list in Java

Java Comparator.naturalOrder()

该方法返回一个比较 Comparable 对象自然顺序的比较器。返回的 Comparable 是可序列化的。在比较 null 时,它会抛出 NullPointerException。它来自 Java 8。方法签名是:

  • 该方法按自然顺序(升序)对元素进行排序。
  • 如果列表中有 null,则将其放在顶部。
  • 如果列表中同时包含大写和小写字母,则在自然顺序中,它会先将大写字母放在前面,然后是小写字母。

参数

T:要比较的元素的 Comparable 类型。

示例

输出

How to sort a list in Java

Java Collections.reverseOrder() 方法

它是 Java Collections 类的一个方法,属于 `java.lang` 包。它返回一个强制执行自然顺序反序的比较器。方法签名是:

参数

由比较器比较的对象的类。

示例

输出

How to sort a list in Java

Java Collections.sort() 方法

Collections 类有两个用于排序列表的方法:

sort() 方法

sort() 方法根据其元素的自然顺序以升序对列表进行排序。方法签名是:

参数

T:类型参数。

list:要排序的列表。

让我们看另一个 Collections.sorts() 方法的例子。

示例

输出

How to sort a list in Java
下一个主题Java 教程