Перейти до основного вмісту
Модуль 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. Знову додайте елементи «apple», «banana» і «apple», а потім надрукуйте розмір набору за допомогою System.out.println.

Завантаження редактора…
Показати підказку

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

Рішення доступне після 3 спроб

вправи#java.m6.l1.e2
Спроби: 0Завантаження…

Завершіть код, оголосивши HashMap з назвою ages із ключами String і значеннями Integer. Пов’яжіть ключ «Аліса» з 25 і ключ «Боб» з 30, потім знайдіть і надрукуйте вік Боба.

Завантаження редактора…
Показати підказку

Використовуйте метод put, щоб вставити пари, і метод get, щоб отримати значення на основі ключів.

Рішення доступне після 3 спроб

вправи#java.m6.l1.e3
Спроби: 0Завантаження…

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

Завантаження редактора…
Показати підказку

Використовуйте метод `containsKey` для об’єкта `countries`, щоб перевірити наявність необхідного ключа.

Рішення доступне після 3 спроб