@Data
@AllArgsConstructor
private static class Testsort {
private String parentId;
private String sort;
}
public static void main(String[] args) {
Testsort vo1 = new Testsort("3", "1");
Testsort vo2 = new Testsort("4", "1");
Testsort vo3 = new Testsort("3", "3");
Testsort vo4 = new Testsort("2", "1");
Testsort vo5 = new Testsort("4", "2");
Testsort vo6 = new Testsort("3", "2");
List<Testsort> list = new ArrayList<>();
list.add(vo1);
list.add(vo2);
list.add(vo3);
list.add(vo4);
list.add(vo5);
list.add(vo6);
Collections.sort(list, new Comparator<Testsort>() {
@Override
public int compare(Testsort o1, Testsort o2) {
int i = o1.getParentId().compareTo(o2.getParentId());
if (i != 0) {
return i;
}
return o1.getSort().compareTo(o2.getSort());
}
});
list.forEach(v -> {
System.out.print(v.getParentId());
System.out.print("--");
System.out.println(v.getSort());
});
//lambda写法:
details.sort(Comparator.comparing(Testsort::getParentId).thenComparingInt(Testsort::getSort));
}