stream根据某个字段排序
时间: 2023-10-23 09:08:50 浏览: 55
要根据某个字段对流进行排序,可以使用流的 `sorted` 方法,并传入一个比较器(Comparator)来指定排序规则。下面是一个示例代码,假设有一个名为 `list` 的流,其中包含了一些对象,每个对象都有一个属性 `fieldName`:
```java
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<MyObject> list = createList(); // 创建包含对象的流
List<MyObject> sortedList = list.stream()
.sorted(Comparator.comparing(MyObject::getFieldName))
.collect(Collectors.toList());
sortedList.forEach(obj -> System.out.println(obj.getFieldName()));
}
// 示例对象
static class MyObject {
private String fieldName;
public MyObject(String fieldName) {
this.fieldName = fieldName;
}
public String getFieldName() {
return fieldName;
}
}
// 创建示例对象的流
static List<MyObject> createList() {
List<MyObject> list = List.of(
new MyObject("Apple"),
new MyObject("Orange"),
new MyObject("Banana")
);
return list;
}
}
```
上述代码将根据 `fieldName` 字段对流进行排序,并将排序结果打印出来。输出结果为:
```
Apple
Banana
Orange
```
你可以根据需要修改 `MyObject` 类和比较器来适应你的数据模型和排序需求。