Parent è una classe ereditata da Child. che è ereditato da GrandChild. Ogni classe contiene l'elenco della classe figlio (cioè Parent contiene l'elenco di Child e Child contiene l'elenco di GrandChild). Ogni classe contiene 50 attributi (attrib1-atrib50). getChildList() restituisce l'ArrayList di oggetti di tipo Bambino getGrandChildList() restituisce l'ArrayList di oggetti di tipo nipotinoOrdinamento tramite Interfaccia comparatore e flussi java 8
Let resultSet essere Elenco dei Parent
List<Parent> resultSet
Ora voglio per ordinare l'elenco in base a una certa attributi. Per esempio se voglio ordinare resultSet sulla base di due attributi genitore (diciamo Abilità 1 e l'attributo 2, io uso questo codice.
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());
Ora voglio ordinare la parentlist sulla base di attributi 1 di classe bambino e l'attributo 1 della classe GrandChild.Per ordinare questo:
Come si ordina un elenco di 'Parent' per attributo di' Child' se ci sono molti 'Child' in ogni 'Parent'? Quale figlio della lista useresti per ottenere l'attributo da confrontare? – Misha
di getChildList() ottengo l'accesso a Child e selezionerò un attributo child. –
Quindi se un genitore ha 10 figli tutti hanno un valore diverso per attr1, quale useresti? – Misha