Witam,
sortuję sobie tablicę obiektów po dwóch zmiennych i próbuje to zrobić za pomocą wyrażeń lambda, oto kod:
Comparator<PhoneInfo> phoneInfoComparator = Comparator.comparing(phoneInfo -> phoneInfo.getTime());
phoneInfoComparator = phoneInfoComparator
.thenComparing(Comparator.comparing(phoneInfo -> phoneInfo.getPhoneNrValue()));
Stream<PhoneInfo> personStream = telMap.values().stream().sorted(phoneInfoComparator);
List<PhoneInfo> sortedASCPhoneInfos = personStream.collect(Collectors.toList());
getTime() i getPhoneNrValue() zwracają Integer. W pierwszym przypadku jest ok bo sortowanie ma być rosnące ale drugie powinno być malejące (to w thenComparing ).
Wiem jak to zrobić po staremu, bez wyrażeń lambda ale myślałem, że może da się to z nimi zrobić mniejszą ilością kodu.
Pytanie: jak to napisać, tak żeby Comparator.comparing() używał odwrotnej kolejności? Albo pozwalał na napisanie własnej logiki porównania?
reversed
zamiastreverse