Мапи

Типи даних і винятки в Java

Jim White

Java Developer

Мапи — це таблиці пошуку

  • Мапи слугують структурою даних для пошуку
    • Зберігають «value» за певним «key»
    • Використовуйте «key», щоб отримати збережене «value»
  • Приклад: дзвінок до лікаря
    • За іменем/датою народження (це key) знаходять медичну картку (це об'єкт value)

Мапи працюють як структура для пошуку: коли телефонуєте до реєстратури, вас просять назвати ім'я та дату народження, щоб знайти картку

Типи даних і винятки в Java

Інтерфейс Map

  • Інтерфейс Map визначає операції з парами ключ–значення
    • Як зберігати або «put» значення за певним ключем
    • Як «remove» значення за ключем із Map
    • Як отримати значення за ключем
  • Є кілька реалізацій Map зі схожою поведінкою
    • Популярна реалізація MapHashMap
1 See https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Map.html for details
Типи даних і винятки в Java

Ключі та значення HashMap

Ключі й значення в Map або HashMap можуть мати однакові чи різні типи

Типи даних і винятки в Java

Створення HashMap

HashMap<Integer, String> map = new HashMap<Integer, String>();
  • Параметризований/узагальнений конструктор HashMap вимагає два типи

    • Перший тип = тип key

      Перший узагальнений параметр HashMap призначений для ключів

    • Другий тип = тип value

      Другий узагальнений параметр HashMap призначений для значень

Типи ключів і значень у дженеріках задають типи даних для ключів і значень

  • Потрібен імпорт java.util.HashMap
Типи даних і винятки в Java

Методи HashMap

  • Використовуйте .put(key,value), щоб додати пару ключ/значення
  • Використовуйте .remove(key), щоб вилучити пару за ключем
  • Використовуйте .get(key), щоб отримати значення за ключем
import java.util.HashMap
...
HashMap<Integer, String> map
    = new HashMap<Integer, String>();
map.put(0, "Jim");
map.put(1, "James");
map.put(3, null);
map.put(4, "James");
map.remove(0);
System.out.println(map);
{1=James, 3=null, 4=James}
String nickname = map.get(1);
System.out.println(nickname);
James
Типи даних і винятки в Java

Collections

  • java.util.Collections — допоміжний клас
  • Використовується для сортування, заповнення, копіювання, пошуку тощо
    • Містить лише методи static
1 See https://docs.oracle.com/en/java/javase//21/docs/api/java.base/java/util/Collections.html
Типи даних і винятки в Java

Методи Collections

  • Додайте багато об'єктів до List
    • addAll(List list, Object a, b, ...)
  • Повертає кількість входжень об'єкта в колекції
    • frequency(Collection c, Object o)
  • Змінює порядок об'єктів у List
    • reverse(List list)
  • Сортує об'єкти у List
    • sort(List list)
  • Замінює всі об'єкти у List іншим об'єктом
    • fill(List a, Object o)
ArrayList<String> x = new ArrayList<String>();
Collections.addAll(x,
    "milk", "bread", "eggs", "milk");
System.out.println(x);

int cnt = Collections.frequency(x, "milk"); System.out.println(cnt);
Collections.reverse(x); System.out.println(x);
Collections.sort(x); System.out.println(x);
Collections.fill(x, "sugar"); System.out.println(x);
[milk, bread, eggs, milk]

2
[milk, eggs, bread, milk]
[bread, eggs, milk, milk]
[sugar, sugar, sugar, sugar]
Типи даних і винятки в Java

Arrays

  • Іноді потрібно перетворити масив (напр., int[]) на List
    • Масиви Java не змінюють розмір, а елементів може стати більше/менше
    • List має ширші можливості (пошук, сортування тощо)
  • java.util.Arrays — ще один допоміжний клас
    • Дозволяє перетворити масив Java на List
Типи даних і винятки в Java

Приклад Arrays

String[] arrayCountries = {"France", "Japan", "Brazil", "Egypt", "China"};
List<String> countries = Arrays.asList(arrayCountries);
System.out.println(countries);
[France, Japan, Brazil, Egypt, China]
Типи даних і винятки в Java

Давайте потренуємось!

Типи даних і винятки в Java

Preparing Video For Download...