Java "Подсчёт слов" с помощью hashmap - и определение максимального элемента по значению - поиск максимума
Primary tabs
Forums:
В примере ниже мы используем HashMap для подсчёта "слов" ,которые в данном случае поступают из коллекции ("массив"):
Map< String, Integer > map = new HashMap < String, Integer >(); // для подсчёта вхождений Map.Entry< String, Intege > maxEntry = null; // будет хранить слово с максимальным числом вхождений // "Подсчёт слов" с помощью hashmap for (Text val : values) { // обходим некоторую коллекцию if (map.containsKey(val)) { // если "слово" уже есть map.put(val.toString() , (Integer) (map.get(val) + 1)); // наращиваем счётчик для данного слова } else {// если такое слово не известно map.put(val.toString(), (Integer) (1)); // добавляем в индекс со значением = 1 } } // обойдём коллекцию и найдём максимальное значение for (Map.Entry< String, Integer > entry : map.entrySet()) { // если максимум не определен или очередное значение ещё больше if (maxEntry == null || entry.getValue().compareTo(maxEntry.getValue()) > 0) { maxEntry = entry; // то присваем максимуму новое значение } } // после завершения цикла в maxEntry лежит элемент с максиальным value (значением)
- Log in to post comments
- 8565 reads