【问题标题】:Java sorting list by element property with stream() [duplicate]使用stream()按元素属性的Java排序列表[重复]
【发布时间】:2019-01-31 16:12:13
【问题描述】:
public static List<Student> getStudents(List<Student> students) {
        return students.stream(). // rest of the code comes here.
}

我想返回一个List&lt;Student&gt;,其中包含按平均降序排列的学生。我必须在 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...
}

【问题讨论】:

    标签: java sorting lambda java-stream


    【解决方案1】:

    return 语句可以很简单:

    return students.stream()
            .sorted(Comparator.comparingDouble(Student::getAverage).reversed())
            .collect(Collectors.toList());
    

    Comparator.comparingInt(Student::getAverage) 返回一个比较学生 average 字段(假设为 getter)的比较器,reversed() 反转自然顺序。

    【讨论】:

      猜你喜欢
      • 2011-05-10
      • 2018-03-26
      • 2021-03-01
      • 1970-01-01
      • 2016-01-26
      • 2020-04-30
      • 1970-01-01
      • 2017-02-18
      • 2015-09-21
      相关资源
      最近更新 更多