Ja nie wiem, czy nie potrafię znaleźć, czy rzeczywiście #java nie ma wbudowanej funkcji do znalezienia elementu listy, który występuje w niej najczęściej? Por ejemplo: W liście[1,2,3,4,5,5,6,6,6,6,6,6] najczęściej występuje 6, i to chcę właśnie zwrócić.
@Matt23: Nic wbudowanego niestety nie ma, ale można się chwilę pobawić z Javą 8 i napisać coś takiego:
Optional mostPopular = data.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.counting())) .entrySet() .stream() .reduce((a, b) -> a.getValue() > b.getValue() ? a : b) .map(Map.Entry::getKey); Potem np. możemy sobie wypisać ten najbardziej popularny na ekran (o ile istnieje):
Por ejemplo: W liście[1,2,3,4,5,5,6,6,6,6,6,6] najczęściej występuje 6, i to chcę właśnie zwrócić.
Optional mostPopular = data.stream()
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))
.entrySet()
.stream()
.reduce((a, b) -> a.getValue() > b.getValue() ? a : b)
.map(Map.Entry::getKey);
Potem np. możemy sobie wypisać ten najbardziej popularny na ekran (o ile istnieje):
mostPopular.ifPresent(System.out::println);