list里的sort方法和collections里的sort方法
时间: 2024-03-03 11:49:51 浏览: 45
`List` 接口中的 `sort` 方法和 `Collections` 类中的 `sort` 方法都可以对列表进行排序,它们的作用是一样的。不同的是,`Collections` 类中的 `sort` 方法是一个静态方法,而 `List` 接口中的 `sort` 方法是一个默认方法。
`List` 接口中的 `sort` 方法只能对实现了 `List` 接口的类进行排序,例如 `ArrayList`、`LinkedList` 等。`Collections` 类中的 `sort` 方法可以对所有实现了 `List` 接口的类进行排序,包括 `ArrayList`、`LinkedList`、`Vector` 等。
此外,`Collections` 类中的 `sort` 方法还可以对数组进行排序,而 `List` 接口中的 `sort` 方法只能对列表进行排序。
使用方法上,两者都可以使用默认的自然排序规则进行排序,也可以通过传入一个 `Comparator` 对象来指定排序规则。例如,以下代码使用默认的自然排序规则对列表进行排序:
```
List<Integer> list = new ArrayList<>();
list.add(3);
list.add(1);
list.add(2);
list.sort(); // 或者 Collections.sort(list);
```
以下代码使用自定义的比较器对列表进行排序:
```
List<Person> list = new ArrayList<>();
list.add(new Person("Tom", 20));
list.add(new Person("Jerry", 18));
list.add(new Person("Mike", 25));
list.sort(new Comparator<Person>() {
@Override
public int compare(Person p1, Person p2) {
return p1.getAge() - p2.getAge();
}
}); // 或者 Collections.sort(list, comparator);
```
阅读全文