Parent是Child继承的类。由GrandChild
继承。每个类包含子类的List(即Parent包含List
Child
,Child
包含List
GrandChild
)。每个类包含50个属性(attrib1
- atrib50
)。 getChildList()
返回arrayList
类型的Child
个对象。 getGrandChildList()
会返回arrayList
GrandChild
个对象
让resultSet
成为List
Parent
List<Parent> resultSet
现在我想根据一些属性对列表进行排序。例如,如果我想根据两个父属性(比如属性1和属性2)对resultSet
进行排序,我会使用此代码。
Comparator<Parent> byFirst = (e1, e2) -> e2.getAttrib1().compareTo(e1.getAttrib1());
Comparator<Parent> bySecond = (e1, e2) -> e1.getAttrib2().compareTo(e2.getAttrib2());
Comparator<Parent> byThird = byFirst.thenComparing(bySecond);
resultSet.sort(byThird);
现在我的下一个标准是分别对每个孩子进行排序。
例如,如果我的条件是子列表的属性15,那么我想通过arribute15对每个子列表进行排序,
对于List<Parent>
中的每个父对象。我应该如何使用Java 8概念(特别是流)来实现这一点。
(请不要给我一个通过for循环迭代每个父级的解决方案并获得childlist
并对其进行排序。)
答案 0 :(得分:3)
您可以使用dat[,rn:=factor(rn,levels=month.abb)][order(rn)]
对Parent
进行迭代,然后对forEach
列表进行排序:
Child