Зарегистрируйтесь, чтобы продолжить обучение

Структура Map в действии Java: Maps

Одна из самых простых и показательных задач при работе с HashMap это подсчет слов в предложении. В этой задаче формируется Map, в котором ключ — это слово из предложения, а значение — это количество раз, которое слово встретилось в тексте.

Для реализации этой задачи понадобится выполнить следующие шаги:

  1. Разбить предложение на список слов.
  2. Инициализировать HashMap в который мы будем складывать слова и частоту их употребления.
  3. Обойти список слов и добавить их в HashMap, в котором ключом будет само слово, а значением количество упоминаний. Если ключ встречается первый раз, то значением будет единица, иначе нужно текущее значение увеличивать на единицу.
var text = "one two three two one one four";
// Разбивает строку на части по разделителю
var words = text.split(" ");

var wordsFrequency = new HashMap<String, Integer>();
for (var word : words) {
    if (wordsFrequency.containsKey(word)) {
        var count = wordsFrequency.get(word);
        wordsFrequency.put(word, count + 1);
    } else {
        wordsFrequency.put(word, 1);
    }
}
System.out.println(wordsFrequency);
// => {four=1, one=3, two=2, three=1}

Этот код можно упростить так, что в нем не будет условных конструкций. Для этого понадобится метод getOrDefault().

var text = "one two three two one one four";
var words = text.split(" ");

var wordsFrequency = new HashMap<String, Integer>();
for (var word : words) {
    var count = wordsFrequency.getOrDefault(word, 0);
    wordsFrequency.put(word, count + 1);
}
System.out.println(wordsFrequency);

Формирование Map во время обхода какого-то списка, достаточно распространенная задача в программировании. Несмотря на разницу в данных и условиях, общая концепция создания и наполнения Map остается одинаковой.

Для более глубокого понимания темы мы рекомендуем просмотреть видео лекцию, которая является дополнительным материалом к данному курсу:


Дополнительные материалы

  1. Метод getOrDefault()

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff