我如何在 java 列表 <Integer> 中以相反的顺序对键进行排序

How do i sort keys in reverse order in java List<Integer>

我在执行此代码时按升序获取键

List<Integer> sortedKey = groupedData.keySet().stream().sorted().collect(Collectors.toList());

如何按降序排列它们?

您可以使用 Comparator.reverseOrder() 作为 .sorted() 方法的参数来指定在对流进行排序时要使用的比较。

顾名思义,Comparator.reverseOrder() Comparator returns Integer 结果按降序排列。

List<Integer> sortedKey = groupedData.keySet().stream()
.sorted(Comparator.reverseOrder())
.collect(Collectors.toList());

Comparator.reverseOrder

虽然我没有测试,但以下方法可能有效。将 Comparator 传递给 Stream#sorted 方法。调用 Comparator.reverseOrder 返回的比较器强加了与自然顺序相反的顺序。

List<Integer> sortedKey = 
    groupedData
    .keySet()
    .stream()
    .sorted( Comparator.reverseOrder() )
    .toList()  
;

在 Java 16 之前,进行最后一次调用 .collect( Collectors.toList()。 )