按顺序反向排序列表

Eld*_*nov 36 java sorting list guava

我有直接的List list1. List<String> list = Ordering.natural().sortedCopy(asu2);

如何改变秩序.我不知道如何从extends类重写方法,请用例子写或清楚说明.

mor*_*ano 88

用这个:

Collections.reverse(list);
Run Code Online (Sandbox Code Playgroud)

  • 这是按降序排序还是只是颠倒插入元素的顺序? (5认同)
  • 它只是颠倒了订单元素. (2认同)
  • 这个答案具有误导性。它不会按降序对集合进行排序 - 只是将最后一个元素与第一个元素交换,将第二个元素与第二个元素交换到最后一个元素,等等 (2认同)

JHS*_*JHS 36

有一种方法reverseOrderCollections它返回一个类Comparator.

你可以像使用它一样 Collections.sort(list, Collections.reverseOrder());

  • 或者只是 `list.sort(Collections.reverseOrder());` (2认同)

小智 18

我会怎么做是:

personsList.sort(Comparator.comparing(Person::getAge, Comparator.reverseOrder()));
Run Code Online (Sandbox Code Playgroud)

和快乐编码:)


小智 13

你可以通过在你的回报前面加上" - "或负号来反转任何类型.

Collections.sort(listed, new Comparator<Object>() {

    @Override
    public int compare(Object o1, Object o2) {

        return -o1.getLeft().compareTo(o2.getLeft());

    }
});
Run Code Online (Sandbox Code Playgroud)

  • 让我们希望 `compareTo` 永远不会返回最小整数,因为 `-Integer.MIN_VALUE` 仍然是 `Integer.MIN_VALUE`。最安全的方法是将 o1 与 o2 交换,例如 `return o2.getLeft().compareTo(o1.getLeft())` (3认同)

ass*_*ias 7

如果你想以反向自然顺序对列表进行排序,那么guava的Ordering有一个反向方法:

List<String> list = Ordering.natural().reverse().sortedCopy(asu2);
Run Code Online (Sandbox Code Playgroud)