stream流排序根据某个字段排序
时间: 2023-08-18 20:11:30 浏览: 129
您可以使用`stream`流进行排序,根据某个字段来进行排序操作。以下是一个示例代码,假设您有一个包含对象的列表,每个对象都有一个字段 `field`:
```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> myList = ...; // 假设您的对象列表为 myList
List<MyObject> sortedList = myList.stream()
.sorted(Comparator.comparing(MyObject::getField)) // 根据字段进行排序
.collect(Collectors.toList());
// 打印排序后的列表
sortedList.forEach(System.out::println);
}
}
class MyObject {
private String field;
public String getField() {
return field;
}
public void setField(String field) {
this.field = field;
}
@Override
public String toString() {
return "MyObject{" +
"field='" + field + '\'' +
'}';
}
}
```
在上面的示例中,使用 `sorted` 方法并传入一个 `Comparator` 对象,使用 `Comparator.comparing` 方法指定要根据的字段进行比较和排序。最后,使用 `collect` 方法将排序后的结果收集到一个新的列表中。
请注意,上述示例假设您已经有一个包含对象的列表,并且对象具有一个名为 `getField` 的方法来获取需要排序的字段值。您需要根据实际情况调整代码以适应您自己的数据结构和字段。
阅读全文