在Java 8中反转比较器

我有一个ArrayList,并希望按降序排序。 我用它来java.util.stream.Stream.sorted(Comparator)方法。 这是根据Java API的描述:

返回由此流的元素组成的流,根据提供的Comparator进行排序。

这个方法按升序返回给我。 我应该更改哪个参数,只是为了降序?

您可以使用Comparator.reverseOrder()来使比较器强制执行自然顺序的反转。

如果要反转现有比较器的顺序,可以使用Comparator.reversed()

示例代码:

 Stream.of(1, 4, 2, 5) .sorted(Comparator.reverseOrder()); // stream is now [5, 4, 2, 1] Stream.of("foo", "test", "a") .sorted(Comparator.comparingInt(String::length).reversed()); // stream is now [test, foo, a], sorted by descending length 

Java 8 Comparator接口有一个reversed方法: https : //docs.oracle.com/javase/8/docs/api/java/util/Comparator.html#reversed–