java集合排序stream
时间: 2025-05-30 15:24:38 浏览: 13
### 使用 Java Stream API 对集合进行排序
Java Stream API 提供了简便而强大的方法来处理集合数据,其中包括对集合元素进行排序。下面展示了一个具体的例子,说明如何利用 `stream()` 方法配合 `sorted()` 和 `collect(Collectors.toList())` 来实现字符串列表的升序排列。
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class SortExample {
public static void main(String[] args) {
List<String> names = Arrays.asList("Peter", "Anna", "Mike", "Xenia");
// 排序列表并收集结果到新列表中
List<String> sortedNames = names.stream()
.sorted()
.collect(Collectors.toList());
System.out.println(sortedNames);
// 输出:[Anna, Mike, Peter, Xenia]
}
}
```
此代码片段创建了一个包含四个名字的列表,并通过调用 `stream().sorted().collect(Collectors.toList())` 将这些名字按字母顺序进行了排序[^4]。
对于更复杂的排序需求,比如按照对象属性或其他标准排序,则可以传递自定义比较器给 `sorted()` 函数作为参数:
```java
// 假设有如下类表示员工信息
class Employee {
private String name;
private int age;
// 构造函数、getter/setter省略
}
List<Employee> employees = ... ; // 初始化employee列表
// 按照年龄降序排序
employees.stream()
.sorted((e1, e2) -> Integer.compare(e2.getAge(), e1.getAge()))
.collect(Collectors.toList());
// 或者使用Comparator.comparing()简化表达式
employees.stream()
.sorted(Comparator.comparing(Employee::getAge).reversed())
.collect(Collectors.toList());
```
上述代码展示了两种不同的方式来进行基于特定字段(这里是员工年龄)的降序排序。
阅读全文
相关推荐


















