我有一个 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 许可协议
8 回答6.6k 阅读
4 回答714 阅读✓ 已解决
2 回答3.4k 阅读
3 回答1.9k 阅读✓ 已解决
1 回答2.2k 阅读✓ 已解决
1 回答2.1k 阅读✓ 已解决
1 回答974 阅读✓ 已解决
您可以使用
Comparator.reverseOrder()
让比较器给出与自然顺序相反的顺序。如果要反转现有比较器的顺序,可以使用
Comparator.reversed()
。示例代码: