Cha mẹ là lớp được kế thừa bởi Trẻ em. được thừa hưởng bởi GrandChild. Mỗi lớp chứa Danh sách các lớp con (nghĩa là Parent chứa List of Child and Child chứa List of GrandChild). Mỗi lớp chứa 50 thuộc tính (attrib1-atrib50). getChildList() trả về ArrayList của các đối tượng của loại getGrandChildList con() trả về ArrayList của các đối tượng của loại cháuSắp xếp bằng cách sử dụng Giao diện so sánh và java 8 luồng
Hãy ResultSet được Danh sách Chánh
List<Parent> resultSet
Bây giờ tôi muốn sắp xếp danh sách dựa trên một số thuộc tính. Ví dụ nếu tôi muốn sắp xếp ResultSet dựa trên hai thuộc tính cha mẹ (nói Attribute 1 và thuộc tính 2, tôi sử dụng mã này.
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());
Bây giờ tôi muốn sắp xếp parentlist dựa trên thuộc tính 1 của lớp trẻ và thuộc tính 1 của lớp GrandChild. Tôi nên sắp xếp điều này như thế nào:
Làm thế nào để bạn sắp xếp một danh sách của 'Parent' bởi thuộc tính của' Child' nếu có nhiều 'Child' trong mỗi 'Parent'? Bạn sẽ sử dụng danh sách con nào trong danh sách để so sánh thuộc tính? – Misha
bởi getChildList() Tôi nhận được quyền truy cập vào Child và tôi sẽ chọn một thuộc tính con. –
Vì vậy, nếu một phụ huynh có 10 trẻ em mà tất cả đều có giá trị khác nhau cho attr1, bạn sẽ sử dụng giá trị nào? – Misha