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
- 9054 reads