我有一个 ArrayList 并希望按降序对它进行排序。我使用它 java.util.stream.Stream.sorted(Comparator)
方法。这是根据 Java API 的描述:
返回由该流的元素组成的流,根据提供的
Comparator
排序。
这个方法给我返回一个升序排序。我应该更改哪个参数,只是为了降序?
原文由 Guforu 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个 ArrayList 并希望按降序对它进行排序。我使用它 java.util.stream.Stream.sorted(Comparator)
方法。这是根据 Java API 的描述:
返回由该流的元素组成的流,根据提供的
Comparator
排序。
这个方法给我返回一个升序排序。我应该更改哪个参数,只是为了降序?
原文由 Guforu 发布,翻译遵循 CC BY-SA 4.0 许可协议
您还可以使用 Comparator.comparing(Function, Comparator)
必要时链接比较器很方便,例如:
Comparator<SomeEntity> ENTITY_COMPARATOR =
Comparator.comparing(SomeEntity::getProperty1, Comparator.reverseOrder())
.thenComparingInt(SomeEntity::getProperty2)
.thenComparing(SomeEntity::getProperty3, Comparator.reverseOrder());
原文由 dim42 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
您可以使用
Comparator.reverseOrder()
让比较器给出与自然顺序相反的顺序。如果要反转现有比较器的顺序,可以使用
Comparator.reversed()
。示例代码: