Tri à l'aide de l'interface de comparaison et des flux java 8

Parent est une classe qui est héritée par l'Enfant. qui est hérité par le petit-fils. Chaque classe contient la Liste de la classe enfant(j'.e Parent contient la Liste de l'Enfant et de l'Enfant contient la Liste de petit-enfant). Chaque classe contient 50 attributs(attrib1-atrib50).
getChildList() retourne la liste de tableaux d'objets de type Enfant getGrandChildList() retourne la liste de tableaux d'objets de type petit-enfant

Laisser resultSet être Liste de Parent

List<Parent> resultSet

Maintenant, je veux trier la liste en fonction de certains attributs. Par exemple si je veux trier jeu de résultats basée sur deux attributs parents(dire et de l'attribut 1 Attribut 2, j'utilise ce code.

    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);


List<Parent> sortedList = resultSet.stream().sorted(byThird)
                .collect(Collectors.toList());

Maintenant, je veux trier les parentlist basée sur 1 attribut de la classe Enfant et de l'attribut 1 de petit-enfant de la classe. Comment dois-je régler ce.

source d'informationauteur Manu Joy