Witam mam takie zadanko:
Mając skończony strumień ciągów znaków, odnajdź wszystkie ciągi znaków o największej długości
Zaimplementowałem to tak:
Map<Integer, Set<String>> lengthStringsMap = strings.collect(groupingBy(String::length, mapping(Function.identity(), toSet())));
return lengthStringsMap.entrySet().stream().
max(Comparator.comparingInt(Map.Entry::getKey)).
orElseGet(() -> new SimpleEntry<>(0,Collections.singleton(""))).
getValue();
}
Chciałbym się spytać czy istnieje jakiś sposób lepszy?
Wzywam na pomoc @Koziołek @Shalom @jarekr000000 :)
PS. Tak wiem jak mapa jest pusta powinienem zwrócić pustego Seta, ale skupiłem się na czymś innym
List.append
ma complexity linear.