Reverse a comparator in Java 8(在 Java 8 中反转比较器)
问题描述
我有一个 ArrayList 并希望按降序对其进行排序.我使用 java.util.stream.Stream.sorted(Comparator)
方法.下面是根据 Java API 的描述:
I have an ArrayList and want sort it in descending order. I use for it java.util.stream.Stream.sorted(Comparator)
method. Here is a description according Java API:
返回一个由该流的元素组成的流,根据提供的Comparator
排序.
Returns a stream consisting of the elements of this stream, sorted according to the provided
Comparator
.
这个方法返回一个升序排序.我应该更改哪个参数,只是为了降序?
this methods return me a sort with ascending order. Which parameter should I change, just to have the descending order?
推荐答案
你可以使用Comparator.reverseOrder()
有一个比较器,提供与自然顺序相反的顺序.
You can use Comparator.reverseOrder()
to have a comparator giving the reverse of the natural ordering.
如果要反转现有比较器的顺序,可以使用 Comparator.reversed()
.
If you want to reverse the ordering of an existing comparator, you can use 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 中反转比较器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在 Java 8 中反转比较器


基础教程推荐
- 减少 JVM 暂停时间 >1 秒使用 UseConcMarkSweepGC 2022-01-01
- Java:带有char数组的println给出乱码 2022-01-01
- FirebaseListAdapter 不推送聊天应用程序的单个项目 - Firebase-Ui 3.1 2022-01-01
- 无法使用修饰符“public final"访问 java.util.Ha 2022-01-01
- 在 Libgdx 中处理屏幕的正确方法 2022-01-01
- 如何使用 Java 创建 X509 证书? 2022-01-01
- “未找到匹配项"使用 matcher 的 group 方法时 2022-01-01
- 设置 bean 时出现 Nullpointerexception 2022-01-01
- 降序排序:Java Map 2022-01-01
- Java Keytool 导入证书后出错,"keytool error: java.io.FileNotFoundException &拒绝访问" 2022-01-01