我有一个按直接顺序排列的 List list1 。List<String> list = Ordering.natural().sortedCopy(asu2);
如何更改排序方式?我不知道如何从继承类中重写方法,请给出示例或讲解清楚。
我有一个按直接顺序排列的 List list1 。List<String> list = Ordering.natural().sortedCopy(asu2);
如何更改排序方式?我不知道如何从继承类中重写方法,请给出示例或讲解清楚。
使用此代码:
Collections.reverse(list);
在Collections
类中有一个方法reverseOrder
,它返回一个Comparator
。
您可以像这样使用它:Collections.sort(list, Collections.reverseOrder());
list.sort(Collections.reverseOrder());
- T77我会这样做:
personsList.sort(Comparator.comparing(Person::getAge, Comparator.reverseOrder()));
祝你编程愉快 :)
只需在返回值前加上"-"或负号,即可对任何类型进行反转。
Collections.sort(listed, new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2) {
return -o1.getLeft().compareTo(o2.getLeft());
}
});
compareTo
永远不会返回最小整数,因为 -Integer.MIN_VALUE
仍然等于 Integer.MIN_VALUE
。最安全的方法是交换 o1 和 o2,像这样:return o2.getLeft().compareTo(o1.getLeft())
。 - Pshemo如果你想将列表按照自然顺序排序的相反顺序排列,guava的Ordering类有一个reverse方法:
List<String> list = Ordering.natural().reverse().sortedCopy(asu2);
尝试使用这种更简洁的方法:
Collections.reverseOrder(
Comparator.comparing(
MyEntity::getAFieldToSortBy)));
Collections.reverse(List)
会将给定的列表就地反转。您还可以使用Guava的Lists.reverse(List)
来创建一个由给定列表支持的视图,该视图以相反的顺序而不复制或修改原始列表。
如果您只想创建按自然顺序相反排序的列表,请参阅@assylias关于Ordering.natural().reverse()
的答案。
list.sort(Comparator.reverseOrder());