Java中List如何排序呢?
下文笔者讲述list排序的方法及示例分享,如下所示
List排序的实现思路
使用 Collections.sort()
或
List自身sort()方法进行排序
例
1.使用`Collections.sort()`方法
`Collections.sort()`方法 可以对实现List接口集合进行排序。 它需要导入java.util.Collections类 import java.util.ArrayList; import java.util.Collections; import java.util.List; public class SortListExample { public static void main(String[] args) { List<Integer> numbers = new ArrayList<>(); numbers.add(15); numbers.add(12); numbers.add(19); numbers.add(11); //使用Collections.sort()方法 //进行排序 Collections.sort(numbers); //输出排序后的列表 System.out.println("Sorted List: " + numbers); } } ========输出结果======= Sorted List: [11,12,15,19]
自定义排序
需要自定义排序规则
可以传递一个`Comparator`对象
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class CustomSortExample {
public static void main(String[] args) {
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
// 使用自定义 Comparator 进行排序
Collections.sort(names, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s2.compareTo(s1); // 降序排序
}
});
// 输出排序后的列表
System.out.println("Sorted List (Descending): " + names);
}
}
====运行以上代码,输出以下信息======
Sorted List (Descending): [Charlie, Bob, Alice]
2.使用`List.sort()`方法
`List`接口引入`sort()`方法
可直接对`List`进行排序
import java.util.ArrayList;
import java.util.List;
public class ListSortExample {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>();
numbers.add(5);
numbers.add(2);
numbers.add(9);
numbers.add(1);
// 使用 List.sort() 方法进行排序
numbers.sort(null); // null 表示使用自然顺序
// 输出排序后的列表
System.out.println("Sorted List: " + numbers);
}
}
===运行以上代码,将输出以下信息========
Sorted List: [1, 2, 5, 9]
自定义排序
传递一个`Comparator`对象
进行自定义排序
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class CustomListSortExample {
public static void main(String[] args) {
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
// 使用自定义 Comparator 进行排序
names.sort(new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s2.compareTo(s1); // 降序排序
}
});
// 输出排序后的列表
System.out.println("Sorted List (Descending): " + names);
}
}
=====运行以上代码,将输出以下信息=====
Sorted List (Descending): [Charlie, Bob, Alice]
使用 Lambda 表达式进行自定义排序
Java 8 引入了 Lambda 表达式,使得自定义排序更加简洁。
import java.util.ArrayList;
import java.util.List;
public class LambdaSortExample {
public static void main(String[] args) {
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
// 使用 Lambda 表达式进行自定义排序
names.sort((s1, s2) -> s2.compareTo(s1)); // 降序排序
// 输出排序后的列表
System.out.println("Sorted List (Descending): " + names);
}
}
====输出结果
Sorted List (Descending): [Charlie, Bob, Alice]
使用方法引用进行自定义排序
Java 8还引入方法引用
可以进一步简化代码。
import java.util.ArrayList;
import java.util.List;
public class MethodReferenceSortExample {
public static void main(String[] args) {
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
// 使用方法引用进行自定义排序
names.sort(String::compareToIgnoreCase); // 按忽略大小写排序
// 输出排序后的列表
System.out.println("Sorted List (Case Insensitive): " + names);
}
}
===运行以上代码,将输出以下信息=====
Sorted List (Case Insensitive): [Alice, Bob, Charlie]
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


