Java HashMap
Оновлено: 22.05.2023
Java HashMap
У розділі ArrayList ви дізналися, що масиви зберігають елементи у вигляді впорядкованої колекції, і доступ до них здійснюється за допомогою індексу (тип int). Однак хеш-карта зберігає елементи в парах "ключ/значення", і ви можете отримати доступ до них за допомогою індексу іншого типу (наприклад, рядка).
Один об'єкт використовується як ключ (індекс) до іншого об'єкта (значення). Він може зберігати різні типи: Рядкові ключі та цілочисельні значення, або одного типу, наприклад Рядкові ключі та Рядкові значення:
Створіть об'єкт HashMap з назвою capitalCities, який буде зберігати рядкові ключі та рядкові значення:
HashMap
String
String
import java.util.HashMap; // import the HashMap class
HashMap<String, String> capitalCities = new HashMap<String, String>();
Додати елементи
Клас HashMap має багато корисних методів. Наприклад, для додавання елементів до нього використовується метод put():
// Import the HashMap class
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// Create a HashMap object called capitalCities
HashMap<String, String> capitalCities = new HashMap<String, String>();
// Add keys and values (Country, City)
capitalCities.put("England", "London");
capitalCities.put("Germany", "Berlin");
capitalCities.put("Norway", "Oslo");
capitalCities.put("USA", "Washington DC");
System.out.println(capitalCities);
}
}
Доступ до елемента
Щоб отримати доступ до значення в HashMap, використовуйте метод get() і зверніться до його ключа:
capitalCities.get("England");
Видалити елемент
Щоб видалити елемент, використовуйте метод remove() і зверніться до ключа:
capitalCities.remove("England");
Щоб видалити всі елементи, використовуйте метод clear():
capitalCities.clear();
Розмір хеш-карти
Щоб дізнатися кількість елементів, використовуйте метод size():
capitalCities.size();
Пройтися по хеш-карті
Пройдіться по елементам хеш-мапи з циклом для кожного з них.
Зауваження: Використовуйте метод keySet(), якщо вам потрібні лише ключі, і метод values(), якщо вам потрібні лише значення:
// Print keys
for (String i : capitalCities.keySet()) {
System.out.println(i);
}
// Print values
for (String i : capitalCities.values()) {
System.out.println(i);
}
// Print keys and values
for (String i : capitalCities.keySet()) {
System.out.println("key: " + i + " value: " + capitalCities.get(i));
}
Інші типи
Ключі та значення в хеш-карті насправді є об'єктами. У наведених вище прикладах ми використовували об'єкти типу String. Пам'ятайте, що String в Java - це об'єкт (а не примітивний тип). Для використання інших типів, таких як int, необхідно вказати еквівалентний клас-обгортку: Integer. Для інших примітивних типів використовуйте Boolean для boolean, Character для char, Double для double тощо:
Створіть об'єкт HashMap з назвою people, який буде зберігати рядкові ключі та цілочисельні значення:
HashMap
String
Integer
// Import the HashMap class
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// Create a HashMap object called people
HashMap<String, Integer> people = new HashMap<String, Integer>();
// Add keys and values (Name, Age)
people.put("John", 32);
people.put("Steve", 30);
people.put("Angie", 33);
for (String i : people.keySet()) {
System.out.println("key: " + i + " value: " + people.get(i));
}
}
}