Collections.sort
时间: 2023-10-14 09:05:25 浏览: 68
Collections.sort 是 Java 中一个用于对集合进行排序的静态方法。它接受一个实现了 java.util.List 接口的集合对象作为参数,然后对该集合进行升序排序。如果需要降序排序,则可以使用 Collections.reverse 方法对排序后的集合进行反转。此外,Collections.sort 方法也可以接受一个实现了 java.util.Comparator 接口的比较器对象作为参数,用于指定排序规则。
相关问题
collections.sort
`Collections.sort`是 Java 中的一个静态方法,用于对 List 集合进行排序。其方法签名为:
```java
public static <T extends Comparable<? super T>> void sort(List<T> list)
```
该方法接收一个 List 集合作为参数,并对其进行升序排序。需要注意的是,集合中的元素必须实现 Comparable 接口并重写 compareTo 方法,否则会抛出 ClassCastException 异常。
当集合中的元素没有实现 Comparable 接口时,我们可以通过传入一个自定义的比较器(Comparator)来实现排序。自定义比较器需要实现 Comparator 接口,并实现 compare 方法,该方法返回一个整数,表示两个元素的大小关系。具体可以参考上面的代码示例。
Collections.sort(list, this::compare);和Collections.sort(list, new Student());有什么区别
`Collections.sort(list, this::compare)`和`Collections.sort(list, new Student())`的区别在于传入的第二个参数不同。
`Collections.sort(list, this::compare)`中的第二个参数是一个方法引用,即使用当前类中的`compare`方法进行比较。这种方式适用于当前类已经实现了`Comparator`接口,且需要使用该类中已经实现的比较方法进行排序的情况。
而`Collections.sort(list, new Student())`中的第二个参数是一个新创建的`Student`对象,即使用该对象中的比较方法进行比较。这种方式适用于需要自定义比较方法,或者当前类没有实现`Comparator`接口的情况。
综上所述,`Collections.sort(list, this::compare)`适用于已经实现了`Comparator`接口且想要使用该类中已经实现的比较方法进行排序的情况,`Collections.sort(list, new Student())`适用于需要自定义比较方法或者当前类没有实现`Comparator`接口的情况。
阅读全文