问题描述
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 (将#修改为@)