Перейти к основному содержимому
Модуль 6 · Урок 1 из 211/14 в курсе~15 min
Уроки модуля (1/2)

Установить и Карта

Помимо класса ArrayList (который представляет упорядоченный список элементов), Java Collections Framework предлагает два других фундаментальных интерфейса: Set (для уникальных элементов) и Map (для ассоциаций «ключ-значение»).

Набор: Коллекции уникальных элементов

Set — это коллекция, которая не может содержать повторяющиеся элементы. Его наиболее распространенной реализацией является HashSet, основанная на внутренней хэш-таблице, которая гарантирует отличную производительность операций вставки, удаления и проверки присутствия.

Java
import java.util.HashSet;
import java.util.Set;

Set<String> uniqueNames = new HashSet<>();
uniqueNames.add("Alice");
uniqueNames.add("Bob");
uniqueNames.add("Alice"); // This insertion will be ignored since "Alice" is already present

System.out.println(uniqueNames.size()); // Prints 2

Карта: ассоциации «ключ-значение»

Map сопоставляет уникальные ключи с значениями. Он не может содержать повторяющиеся ключи: каждый ключ связан не более чем с одним значением. Его стандартная реализация — HashMap.

Java
import java.util.HashMap;
import java.util.Map;

Map<String, Integer> ageMap = new HashMap<>();
// Insert or update key-value pairs
ageMap.put("Alice", 25);
ageMap.put("Bob", 30);

// Retrieve value by key
int aliceAge = ageMap.get("Alice"); // Returns 25

// Verify if a key or value exists
boolean hasBob = ageMap.containsKey("Bob"); // Returns true

Перебор карты

Для перебора пар ключ-значение мы можем использовать цикл for-each для набора записей (entrySet()), предоставленного картой.

Java
for (Map.Entry<String, Integer> entry : ageMap.entrySet()) {
    System.out.println(entry.getKey() + " is " + entry.getValue() + " years old.");
}

Попробуйте сами

Упражнение#java.m6.l1.e1
Попыток: 0Загрузка…

Завершите код, объявив HashSet строк с именами items. Добавьте элементы «яблоко», «банан» и «яблоко» еще раз, затем напечатайте размер набора с помощью System.out.println.

Загрузка редактора…
Показать подсказку

Помните, что дубликаты в Set не допускаются, а items.size() вернет фактическое количество вставленных уникальных элементов.

Решение доступно после 3 попыток

Упражнение#java.m6.l1.e2
Попыток: 0Загрузка…

Завершите код, объявив HashMap с именем age со строковыми ключами и целочисленными значениями. Свяжите ключ «Алиса» с числом 25, а ключ «Боб» с числом 30, затем найдите и выведите возраст Боба.

Загрузка редактора…
Показать подсказку

Используйте метод put для вставки пар и метод get для получения значений на основе ключей.

Решение доступно после 3 попыток

Упражнение#java.m6.l1.e3
Попыток: 0Загрузка…

Завершите код, проверив, содержит ли карта стран ключ «FR», и выведите логический результат.

Загрузка редактора…
Показать подсказку

Используйте методcontainsKey объектаcountries, чтобы проверить наличие необходимого ключа.

Решение доступно после 3 попыток