stream流根据某个字段排序
时间: 2023-10-23 19:08:41 浏览: 48
根据某个字段排序可以使用Java 8提供的流(Stream)和Comparator进行排序,具体步骤如下:
1. 首先将需要排序的数据放入一个列表中,例如List<T> list。
2. 使用Stream对列表进行排序,可以使用sorted方法,其中传入一个Comparator对象作为参数,该对象定义了排序规则。
3. 在Comparator对象中定义排序规则,可以使用comparing方法,该方法接收一个Function对象作为参数,该对象定义了排序所依据的字段。
4. 最后使用collect方法将排序后的Stream转换回List。
示例代码如下:
```java
List<Student> students = new ArrayList<>();
// 添加学生信息到列表中
students.add(new Student("Tom", 18, 90));
students.add(new Student("John", 20, 85));
students.add(new Student("Mary", 19, 95));
// 根据分数降序排序
List<Student> sortedList = students.stream()
.sorted(Comparator.comparing(Student::getScore).reversed())
.collect(Collectors.toList());
// 输出排序后的学生信息
sortedList.forEach(System.out::println);
```
上述示例代码中,我们通过Stream对学生列表进行排序,使用了comparing方法定义了按照分数降序排序,最终使用collect方法将排序后的Stream转换回List。