Как из списка url (задан в файле) выбрать топ 10 использующихся
из списка url нужно выбрать топ 10 повторяющихся
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
scanner.close();
return null;
}
этот код выводит вот такой список

из всего списка,он длинною в 1200 строк нужно выбрать топ 10 используемых. ума не приложу какими методами это сделать.
Ответы (1 шт):
Автор решения: Serodv
→ Ссылка
// создаём вспомогательную мапу для подсчёта кол-ва url
Map<String, Integer> urlCountMap = new HashMap<>();
while (scanner.hasNextLine()) {
// наполняем мапу: ключ - url, value - их количество
urlCountMap.merge(scanner.nextLine(), 1, Integer::sum);
}
// сортируем мапу по убыванию value и первые 10 Map.Entry
// помещаем в результирующую LinkedHashMap
LinkedHashMap<String, Integer> sortedMap = urlCountMap.entrySet()
.stream()
.sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))
.limit(10)
.collect(Collectors.toMap(Map.Entry::getKey,
Map.Entry::getValue,
(e1, e2) -> e2,
LinkedHashMap::new));
