使用stream()按元素属性的Java排序列表[重复]
Posted
技术标签:
【中文标题】使用stream()按元素属性的Java排序列表[重复]【英文标题】:Java sorting list by element property with stream() [duplicate] 【发布时间】:2019-01-31 16:12:13 【问题描述】:public static List<Student> getStudents(List<Student> students)
return students.stream(). // rest of the code comes here.
我想返回一个List<Student>
,其中包含按平均降序排列的学生。我必须在 stream()
方法中使用 lambda 表达式。
示例类:
public class Student
private String name;
private int birthYear;
private double average;
public Student(String name, int birthYear, double average)
this.name = name;
this.birthYear = birthYear;
this.average = average;
...getters and setters...
【问题讨论】:
【参考方案1】:return 语句可以很简单:
return students.stream()
.sorted(Comparator.comparingDouble(Student::getAverage).reversed())
.collect(Collectors.toList());
Comparator.comparingInt(Student::getAverage)
返回一个比较学生 average
字段(假设为 getter)的比较器,reversed()
反转自然顺序。
【讨论】:
以上是关于使用stream()按元素属性的Java排序列表[重复]的主要内容,如果未能解决你的问题,请参考以下文章