如何按降序对ArrayList <Long>进行排序?

Tam*_*ara 95 java

如何ArrayList<Long>按递减顺序对Java进行排序?

Whi*_*g34 237

这是您的一种方式list:

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

或者您可以实现自己Comparator的排序并消除相反的步骤:

list.sort((o1, o2) -> o2.compareTo(o1));
Run Code Online (Sandbox Code Playgroud)

或者甚至更简单地使用,Collections.reverseOrder()因为你只是逆转:

list.sort(Collections.reverseOrder());
Run Code Online (Sandbox Code Playgroud)

  • `l1> l2?-1:l1 == l2?0:1`这段代码很荒谬.然后使用`o1.compareTo(o2)`. (6认同)
  • @ilya:哦,是的,好点,虽然它需要是'o2.compareTo(o1)`这里:) (4认同)
  • list.sort(Collections.reverseOrder()); (2认同)

Ume*_*cha 26

Comparator<Long> comparator = Collections.reverseOrder();
Collections.sort(arrayList, comparator);
Run Code Online (Sandbox Code Playgroud)


小智 18

您可以使用下面给出的以下代码;

Collections.sort(list, Collections.reverseOrder());
Run Code Online (Sandbox Code Playgroud)

或者如果您打算使用自定义比较器,您可以使用下面给出的

Collections.sort(list, Collections.reverseOrder(new CustomComparator());
Run Code Online (Sandbox Code Playgroud)

CustomComparator是比较器类,用于比较列表中存在的对象.


aze*_*ati 10

Java 8

在java 8中这样做很有趣也很容易

Collections.sort(variants,(a,b)->a.compareTo(b));
Collections.reverse(variants);
Run Code Online (Sandbox Code Playgroud)

Lambda表达摇滚在这里!!!

如果您需要多个线路逻辑来比较ab,您可以这样写

Collections.sort(variants,(a,b)->{
    int result = a.compareTo(b);
    return result;
});
Run Code Online (Sandbox Code Playgroud)

  • 我认为如果我们将其更改为 b.compareTo(a),则不需要反转集合。 (2认同)

Man*_*noj 7

正常排序并使用 Collections.reverse();