Топ-3 товаров через Map.merge Есть названия покупок с повторами. Сначала считаем частот...
Топ-3 товаров через Map.merge Есть названия покупок с повторами. Сначала считаем частоты, затем сортируем записи: Map<String, Integer> counts = new HashMap<>(); for (String item : purchases) { counts.merge(item, 1, Integer::sum); } counts.entrySet().stream() .sorted(Map.Entry.<String, Integer> comparingByValue().reversed() .thenComparing(Map.Entry.comparingByKey())) .limit(3) .forEach(System.out::println); Второй критерий делает порядок при одинаковой частоте предсказуемым. Пример предполагает непустые, ненулевые названия. Для большого количества разных товаров полная сортировка может быть лишней: топ-k можно поддерживать ограниченной кучей. Сначала оцените размер данных. #Java Java Библиотека | Мы в Телеграм