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));
    }
  }
}