HashMap: методы put, get, containsKey

Тренажер по Java для пользователей с начальным уровнем подготовки.

Тренажер по Java

Продолжаем изучение HashMap. Теперь, когда мы умеем создавать карту, пора научиться с ней работать. Основные методы, которые используются чаще всего: put(), get() и containsKey().

  • put(K, V) — добавляет пару или обновляет значение, если ключ уже есть.
  • get(K) — возвращает значение по ключу или null, если ключа нет.
  • containsKey(K) — проверяет наличие ключа (возвращает true/false).

Этот тренажер поможет закрепить синтаксис и логику работы методов. Мы разберем, как работает код при обновлении данных и обработке отсутствующих ключей.

Список тем

1. Добавление элементов

id: 40512_map_methods_01_replace

В этом задании вам предстоит дополнить код, который создаёт и заполняет телефонную книгу, используя HashMap. В коде пропущены вызовы метода put для добавления записей, а также методы get и containsKey для получения данных и проверки наличия ключей. Вставьте в пропуски правильные имена методов, чтобы код компилировался и работал корректно, выводя информацию о контактах.

Заполните пропуски
import java.util.HashMap;

public class PhoneBook {
    public static void main(String[] args) {
        HashMap<String, String> phoneBook = new HashMap<>();
        
        // Добавление контакта "Анна" с номером "123-456-789"
        phoneBook.input1S("Анна", "123-456-789");
        // Добавление контакта "Борис" с номером "987-654-321"
        phoneBook.input2S("Борис", "987-654-321");
        // Добавление контакта "Виктор" с номером "555-123-456"
        phoneBook.input3S("Виктор", "555-123-456");
        
        // Получение номера Анны и вывод на экран
        String annasNumber = phoneBook.input4S("Анна");
        System.out.println("Номер Анны: " + annasNumber);
        
        // Проверка наличия контакта "Борис" в телефонной книге
        if (phoneBook.input5S("Борис")) {
            System.out.println("Борис есть в телефонной книге.");
        }
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

2. Логика проверки

id: 40512_map_methods_02_sequencing

Перед вами строки java-кода, демонстрирующие работу с HashMap. Они перемешаны. Расставьте их в правильном порядке, чтобы получилась корректная программа, которая создаёт карту, добавляет в неё элемент, проверяет наличие ключа с помощью метода containsKey и, если ключ найден, выводит соответствующее значение с помощью метода get. Обратите внимание на логическую последовательность: карта должна быть создана до добавления элемента, а проверка и вывод значения выполняются после добавления.

Расставьте строки в правильном порядке
    Integer value = map.get("apple");
HashMap<String, Integer> map = new HashMap<>();
map.put("apple", 5);
}
if (map.containsKey("apple")) {
    System.out.println(value);
Сообщения
Проверить
Показать подсказку

3. Перезапись значения

id: 40512_map_methods_03_give_result

В этом задании вы должны проанализировать фрагмент кода на Java, который демонстрирует работу с HashMap. В коде создается объект HashMap, затем дважды вызывается метод put с одинаковым ключом, но разными значениями. После этого вызывается метод get для извлечения значения по этому ключу. Ваша задача — определить, какое именно значение будет выведено на экран, и ввести его в поле ответа. Введите одно число без дополнительных символов.

Что должно получиться?
import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        HashMap<String, Integer> map = new HashMap<>();
        map.put("key", 5);
        map.put("key", 10);
        System.out.println(map.get("key"));
    }
}
Сообщения
Проверить
Показать подсказку

4. Ошибка метода

id: 40512_map_methods_04_error

В данном фрагменте кода на Java используется HashMap, но в одной из строк допущена ошибка в названии метода. Исправьте неверный вызов метода, чтобы программа могла корректно получить значение по ключу и вывести его на экран.

Найдите ошибку и исправьте
import java.util.HashMap;
 
public class Main {
    public static void main(String[] args) {
        HashMap<String, Integer> map = new HashMap<>();
        map.put("apple", 5);
        System.out.println(map.take("apple"));
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

5. Операции чтения и записи

id: 40512_map_methods_05_highlight

В приведённом фрагменте кода Java выделены вызовы методов HashMap. Разметьте каждый выделенный вызов, указав, относится ли он к операции изменения данных (put) или к операции чтения данных (get, containsKey). Это поможет закрепить понимание назначения основных методов работы с ассоциативными массивами.

Кликните по каждому выделенному фрагменту и выберите для него подходящий тип из списка под текстом.
Map scores = new HashMap<>();
scores.{{put~|~t1}}("Alice", 95);
int aliceScore = scores.{{get~|~t2}}("Alice");
boolean hasBob = scores.{{containsKey~|~t3}}("Bob");
scores.{{put~|~t4}}("Bob", 87);
int bobScore = scores.{{get~|~t5}}("Bob");
Чтение данных
Изменение данных
Сообщения
Проверить
Показать подсказку

6. Получение несуществующего

id: 40512_map_methods_06_predict

Проанализируйте приведённый фрагмент кода на Java. В нём создаётся объект HashMap, в который добавляются пары ключ-значение, а затем выполняется попытка получить значение по ключу, который ранее не был добавлен в коллекцию. Выберите, что будет выведено в консоль в результате выполнения программы.

Выберите правильный вариант ответа
import java.util.HashMap;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        Map<String, Integer> scores = new HashMap<>();
        scores.put("Alice", 95);
        scores.put("Bob", 87);
        scores.put("Charlie", 92);
        
        Integer result = scores.get("David");
        System.out.println(result);
    }
}
Сообщения
Проверить
Показать подсказку

7. Условие наличия

id: 40512_map_methods_07_select

В данном фрагменте кода на Java используется HashMap для хранения пар ключ-значение. В условии оператора if пропущен метод, который проверяет наличие ключа в карте. Вам необходимо выбрать правильный метод из предложенного списка, чтобы код корректно проверял наличие ключа и выводил соответствующее значение. Обратите внимание на синтаксис вызова методов HashMap и их назначение.

Нужно правильно расставить в пропуски предложенные варианты
import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        HashMap<String, Integer> map = new HashMap<>();
        map.put("apple", 10);
        map.put("banana", 20);
        
        String key = "apple";
        if (map.input1S(key)) {
            System.out.println(map.get(key));
        }
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку
НайтиКурс.Ру