понеділок, 1 серпня 2022 р.

HashMap

HashMap розширює AbstractMap та реалізує інтерфейс Map. Клас не додає власних методів. Клас використовує хеш таблиці для зберігання зіставлення. HashMap не гарантує порядок елементів.

HashMap має наступні конструктори:

HashMap( )

HashMap(Map<? extends K, ? extends V> m)

HashMap(int capacity)

HashMap(int capacity, float fillRatio)

Перший створює HashMap по замовчуванню. Другий створює хеш зіставлення використовуючи елементи m. Третій задає ємність хеш зіставлення. Четвертий задає ємність(по замовчуванню 16) та коефіцієнт заповнення (по замовчуванню 0.75).


package Map;
package Map;

import java.util.HashMap;
import java.util.*;
import java.util.Set;

public class TestHashMap {
	
	 public static void main(String[] args) {
		// створюємо об'єкт HashMap з назвою capitalCities
		HashMap<String, String> capitalCities = new HashMap<String, String>();

		// додаємо ключі і значення (Країна, Столиця)
		capitalCities.put("Англія", "Лондон");
		capitalCities.put("Німеччина", "Берлін");
		capitalCities.put("Норвегія", "Осло");
		capitalCities.put("США", "Вашингтон");
		//вивести значення об'єкту capitalCities
		System.out.println(capitalCities);
		//звернутися до HashMap використовуючи ключ
		System.out.println(" Отримати столицю США");
		System.out.println(capitalCities.get("США"));
		//Видалити Англію
		System.out.println(" Видаляємо Англію");
		capitalCities.remove("Англія");
		System.out.println(capitalCities);
		//видалити все можна так
		//capitalCities.clear();
		// друкуємо ключі
		System.out.println(" Ключі:");
		for (String i : capitalCities.keySet()) {
		  System.out.println(i);
		}
		// друкуємо значення
		System.out.println(" Значення:");		
		for (String i : capitalCities.values()) {
		  System.out.println(i);
		}
		// Друкувати ключі і значення
		System.out.println(" Ключі і значення:");
		for (String i : capitalCities.keySet()) {
		  System.out.println("key: " + i + " value: " + capitalCities.get(i));
		}
		
		System.out.println("Використовуємо Map.Entry");
		//одержати множину входжень
		Set<Map.Entry<String,String>> set=capitalCities.entrySet();
		//вивести множину входжень
		for(Map.Entry<String, String> me: set) {
			System.out.print(me.getKey()+": ");
			System.out.println(me.getValue());
		}

	 }
}

Результат:
{США=Вашингтон, Англія=Лондон, Норвегія=Осло, Німеччина=Берлін}
 Отримати столицю США
Вашингтон
 Видаляємо Англію
{США=Вашингтон, Норвегія=Осло, Німеччина=Берлін}
 Ключі:
США
Норвегія
Німеччина
 Значення:
Вашингтон
Осло
Берлін
 Ключі і значення:
key: США value: Вашингтон
key: Норвегія value: Осло
key: Німеччина value: Берлін
Використовуємо Map.Entry
США: Вашингтон
Норвегія: Осло
Німеччина: Берлін

Ключі і значення в HashMap є об’єктами. Якщо ми хочемо використати, наприклад, числа цілого типу (іnt) то використовуватиметься клас обгортка Integer.

Немає коментарів:

Дописати коментар