如何解决Java 8排序自定义排序
class A {
private String name;
private int grade;
private RD rd;
// setters & getters
}
class RD {
private double ef;
private double mf;
private int doe;
// setters & getters
}
基于4个不同列的自定义排序。
- 等级,升序
- ef降序
- 按升序排列
- mf降序 我试过了。
但是我没有得到正确的输出。
这就是我所做的。
class SortingCustom {
public static void main(String[] args) {
List<A> aList = new ArrayList<A>();
Collections.sort(aList,Comparator.comparing(A::getGrade)
.thenComparing((A a,A b) -> {
return Double.compare(b.getRd().getEf(),a.getRd().getEf());
})
.thenComparing((A a,A b) -> {
return Integer.compare(a.getRd().getDoe(),b.getRd().getDoe());
})
.thenComparing((A a,A b) -> {
return Double.compare(b.getRd().getMf(),a.getRd().getMf());
})
);
//This doesnot sort all data.
}
}
样本输出
Grade EF DOE MF
====== ===== ===== ====
1 0.27 4 0.72
2 0.98 2 0.34
2 0.96 3 0.93
2 0.96 3 0.91
2 0.96 3 0.87
2 0.96 3 0.65
2 0.96 4 0.34
2 0.87 4 0.25
3 0.67 4 0.22
3 0.45 6 0.17
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。