Що таке HashMap в Java?
Клас HashMap у Java використовується для зберігання даних у форматі "ключ-значення". Це один із найпопулярніших класів колекцій у Java, який забезпечує ефективний доступ до даних завдяки хешуванню. HashMap реалізує інтерфейс Map і дозволяє швидко знаходити значення за їхніми ключами.
- Ключі мають бути унікальними, тоді як значення можуть повторюватися.
- HashMap підтримує зберігання одного null-ключа та декількох null-значень.
- Елементи HashMap не впорядковані, тобто порядок їх додавання не зберігається.
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// Створюємо об'єкт HashMap
HashMap<String, Integer> scores = new HashMap<>();
// Додаємо елементи
scores.put("Аліса", 85);
scores.put("Боб", 90);
scores.put("Чарлі", 78);
// Отримуємо значення за ключем
int bobScore = scores.get("Боб");
System.out.println("Оцінка Боба: " + bobScore);
// Перевіряємо наявність ключа
if (scores.containsKey("Аліса")) {
System.out.println("Оцінка Аліси: " + scores.get("Аліса"));
}
// Видаляємо елемент
scores.remove("Чарлі");
// Перебираємо елементи
for (String key : scores.keySet()) {
System.out.println(key + ": " + scores.get(key));
}
}
}
HashMap є особливо корисним у випадках, коли необхідно швидко отримати доступ до даних за ключем. Середня тимчасова складність операцій вставки, видалення та пошуку становить O(1), що робить його ефективним інструментом для роботи з великими обсягами даних.
Однак HashMap не синхронізований, тому його використання у багатопотоковому середовищі може спричинити непередбачувану поведінку. У таких випадках можна використовувати ConcurrentHashMap або обгорнути HashMap за допомогою методу Collections.synchronizedMap().
Для впорядкованого зберігання елементів можна використовувати LinkedHashMap, який зберігає порядок додавання, або TreeMap, який сортує елементи за ключем. Вибір відповідної реалізації залежить від вимог вашого завдання.