我有一个填充了Integer对象的数组,我希望通过内置的ArrayList排序方法进行排序。我不希望通过Collection.sort这样做。我是否必须实现比较器方法然后传递给sort方法?
答案 0 :(得分:0)
这是java 8的方法。
Window and Rank
答案 1 :(得分:0)
ArrayList.sort
方法确实采用了一个可用于指定排序标准的比较器,但如documentation page所述,传递null
比较器也是有效的:
如果指定的比较器为null,则此列表中的所有元素必须实现Comparable接口和元素'应该使用自然排序。
正如您从Integer
documentation,Integer
实现Comparable<Integer>
所看到的那样,它具有自然顺序。
所以要对ArrayList<Integer>
进行排序,你可以这样做:
ArrayList<Integer> arr = new ArrayList<>();
...
arr.sort(null); // Null comparator forces sort by natural ordering