list.sort()排序 java
时间: 2025-03-05 09:47:07 浏览: 31
### Java 中 `list.sort()` 方法的用法
`list.sort()` 是 Java 8 引入的方法之一,用于对列表中的元素进行排序。此方法接受一个比较器作为参数来定义排序逻辑。
对于整数列表按自然顺序(升序)排列的情况如下所示[^1]:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1, 4, 2, 6, 2, 8);
list = new ArrayList<>(list); // 因为asList返回的对象不支持动态修改,所以这里转换成ArrayList
list.sort(Comparator.naturalOrder());
System.out.println(list);
}
}
```
当涉及到更复杂的对象时,则可以通过自定义比较器来进行特定属性上的排序操作。例如,在游戏开发场景下的背包系统中,可以根据物品的不同特征对其进行排序[^3]:
```java
class Item implements Comparable<Item>{
private String name;
private int weight;
public Item(String name,int weight){
this.name=name;
this.weight=weight;
}
@Override
public int compareTo(Item o) {
return Integer.compare(this.weight,o.weight);
}
@Override
public String toString(){
return "Item{name='" +name+"' , weight="+weight+"}";
}
}
public class Test{
public static void main(String []args){
List<Item> items=new ArrayList<>();
items.add(new Item("sword",5));
items.add(new Item("shield",7));
items.add(new Item("potion",3));
Collections.sort(items);
for (Item item : items) {
System.out.println(item);
}
// 或者使用 lambda 表达式直接传递 Comparator 给 sort 方法
items.sort((item1,item2)->Integer.compare(item1.getWeight(),item2.getWeight()));
}
}
```
值得注意的是,`list.sort()` 的内部实现会先把列表转化为数组形式,接着调用 `Arrays.sort()` 来完成实际的排序工作,最后再把排好序的结果重新赋给原来的列表变量[^2]。
阅读全文
相关推荐


















