Java中,arraylist中sort用法
时间: 2024-03-03 10:48:20 浏览: 110
`ArrayList` 的 `sort()` 方法用于对列表中的元素进行排序。排序时可以使用默认的比较器或自定义比较器。
1. 使用默认的比较器排序
如果列表中的元素实现了 `Comparable` 接口,则可以直接使用 `sort()` 方法进行排序。默认情况下,`sort()` 方法会按照元素的自然顺序(即元素类的 `compareTo()` 方法)进行排序。
例如,对一个包含 `Integer` 类型元素的 `ArrayList` 进行排序:
```java
ArrayList<Integer> list = new ArrayList<>();
list.add(3);
list.add(1);
list.add(2);
list.sort();
System.out.println(list); // 输出 [1, 2, 3]
```
2. 使用自定义比较器排序
如果列表中的元素没有实现 `Comparable` 接口,或者我们想要按照自定义的顺序进行排序,可以传入一个比较器对象给 `sort()` 方法。
比较器对象是一个实现了 `Comparator` 接口的类,其中的 `compare()` 方法用于定义比较规则。例如,对一个包含 `String` 类型元素的 `ArrayList` 按照长度进行排序:
```java
ArrayList<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
list.sort(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.length() - o2.length();
}
});
System.out.println(list); // 输出 [apple, orange, banana]
```
在上面的例子中,我们使用一个匿名内部类创建了一个比较器对象,实现了 `compare()` 方法来定义比较规则。
另外,Java 8 引入了 Lambda 表达式,可以更简洁地创建比较器对象:
```java
list.sort((o1, o2) -> o1.length() - o2.length());
```
这和上面的例子是等价的。
阅读全文