HashMap: пары ключ-значение

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

Тренажер по Java

В этом уроке мы познакомимся с HashMap — одной из самых популярных коллекций в Java. В отличие от массивов или списков, где доступ к элементам осуществляется по числовому индексу, HashMap хранит данные в парах ключ-значение (Key-Value).

Представьте себе телефонную книгу: имя человека — это ключ, а его номер — значение. Ключи в Map должны быть уникальными, а вот значения могут повторяться. Для объявления используется синтаксис с дженериками: HashMap map = new HashMap<>();.

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

Список тем

1. Выбор типов данных

id: 40511_hashmap_kv_01_select

В данном задании вам предстоит заполнить пропуски в объявлении HashMap, выбрав правильные классы-обертки для типов данных из выпадающего списка. Обратите внимание, что в дженериках (угловых скобках) нельзя использовать примитивные типы (например, int, double), вместо них необходимо указывать соответствующие классы-обертки (Integer, Double). Код демонстрирует создание ассоциативного массива для хранения информации о студенте: имени (строка), возраста (целое число) и среднего балла (число с плавающей точкой).

Нужно правильно расставить в пропуски предложенные варианты
HashMap<input1S, input2S> studentInfo = new HashMap<>();
studentInfo.put("name", "Алексей");
studentInfo.put("age", 20);
studentInfo.put("averageScore", 4.75);
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

2. Инициализация Map

id: 40511_hashmap_kv_02_replace

В этом задании вам нужно дополнить строку инициализации HashMap, вставив пропущенные элементы. Код создаёт карту (Map) с ключами типа String и значениями типа Integer. Для корректной работы необходимо использовать ключевое слово для создания нового объекта и оператор diamond (пустые угловые скобки), позволяющий компилятору вывести типы из контекста. Заполните пропуски так, чтобы строка кода стала синтаксически правильной и компилировалась без ошибок.

Заполните пропуски
Map<String, Integer> scores = input1S HashMapinput2S();
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

3. Ключи и Значения

id: 40511_hashmap_kv_03_compare

В левой колонке приведены примеры данных, которые могут использоваться в HashMap. В правой колонке указаны роли: ключ (уникальный) или значение (дублируемое). Сопоставьте каждый пример данных с наиболее подходящей ролью в HashMap, исходя из принципов уникальности ключей и возможной повторяемости значений.

Сопоставьте строки в правой(нижней) части с соответствующими строками в левой(верхней) по порядковому номеру
ID сотрудника (например, 12345)
Имя пользователя (например, "ivan_ivanov")
ISBN книги (например, "978-5-4461-1234-5")
Должность сотрудника (например, "Разработчик")
Название книги (например, "Java. Полное руководство")
Ключ - уникальный
Ключ - уникальный
Значение - дублируемое
Значение - дублируемое
Значение - дублируемое
Сообщения
Проверить
Показать подсказку

4. Где здесь ключи?

id: 40511_hashmap_kv_04_click

Внимательно изучите приведённый код на Java, который создаёт и заполняет объект HashMap. Ваша задача — кликнуть на все элементы, которые являются ключами (Keys) в этой карте. Ключи — это строки, которые добавляются первым аргументом в метод put. Не отмечайте значения (числа), имена переменных, названия методов или другие части кода.

Кликните по всем фрагментам, которые подходят под условие задания.
HashMap<String, Integer> ages = new HashMap<>();
ages.put({{"John"~|~t1}}, {{25~|~t2}});
ages.put({{"Alice"~|~t3}}, {{30~|~t4}});
ages.put({{"Bob"~|~t5}}, {{35~|~t6}});
ages.put({{"Diana"~|~t7}}, 28);

for (String name : ages.keySet()) {
    System.out.println(name);
}
Сообщения
Проверить
Показать подсказку

5. Уникальность ключей

id: 40511_hashmap_kv_05_predict

Проанализируйте представленный фрагмент кода на Java, в котором создаётся объект 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);
        map.put("apple", 30);
        
        System.out.println("Размер карты: " + map.size());
    }
}
Сообщения
Проверить
Показать подсказку

6. Сборка объявления

id: 40511_hashmap_kv_06_build

Из предложенных строк соберите корректную java-программу, которая создаёт объект HashMap, добавляет в него пару ключ-значение ("Apple", 10) и выводит значение по ключу "Apple". Игнорируйте лишние строки, которые не требуются для решения задачи. Программа должна содержать импорт HashMap, объявление класса Main, метод main, создание объекта HashMap, добавление элемента и вывод значения.

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