Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java8中从父列表排序子列表_Java_Sorting_Lambda_Java 8 - Fatal编程技术网

在Java8中从父列表排序子列表

在Java8中从父列表排序子列表,java,sorting,lambda,java-8,Java,Sorting,Lambda,Java 8,父类是由子类继承的类。它由孙子继承。每个类都包含子类的列表(即父类包含子类的列表,子类包含孙子类的列表)。每个类包含50个属性(attrib1-atrib50)getChildList()返回类型为Child的对象的arrayListget孙子列表()返回孙子类型的对象的arrayList 让resultSet成为父项的列表 List<Parent> resultSet 现在,我的下一个标准是分别对每个孩子进行排序。 例如,如果我的条件是子列表的attribute15,那么我想按a

父类是由子类继承的类。它由
孙子继承。每个类都包含子类的列表(即父类包含子类的
列表
,子类包含孙子类的
列表
)。每个类包含50个属性(
attrib1
-
atrib50
getChildList()
返回类型为
Child
的对象的
arrayList
get孙子列表()
返回
孙子类型的对象的
arrayList

resultSet
成为
父项的
列表

List<Parent> resultSet
现在,我的下一个标准是分别对每个孩子进行排序。 例如,如果我的条件是子列表的attribute15,那么我想按arribute15对每个子列表进行排序, 对于
列表中的每个父对象
。我应该如何使用Java8概念(特别是流)来实现这一点。
(请不要给我一个通过for循环迭代每个父对象并获取
子对象列表
并对其排序的解决方案。)

您可以使用
forEach
迭代
父对象
s,然后对
子对象
列表进行排序:

resultSet.stream()
        .forEach(p -> p.getChildList().sort(Comparator.comparing(Child::getAttrib15)));

当您有这么多属性时,可能是时候切换到动态属性了(将名称-值对存储在
HashMap
EnumMap
中)。。。同样
comparatorbyfirst=Comparator.comparing(父级::getAttrib1)看起来更适合我。
resultSet.stream()
        .forEach(p -> p.getChildList().sort(Comparator.comparing(Child::getAttrib15)));