Що таке Map?
Ми розглянемо інтерфейс Map у Java. Інтерфейс Map є частиною Java Collections framework і визначає методи для роботи з даними у вигляді пар ключ-значення.
Розглянемо визначення:
Основна реалізація такої структури даних у Java — це HashMap, яка реалізує інтерфейс Map. Дослідимо основні методи та принципи роботи цієї реалізації.
Почнемо з оголошення та методів:
Main.java
1Map<K, V> map = new HashMap<>();
Тут ви бачите, що у generics або діамантових дужках вказуються два значення:
- Значення
Kвідповідає типу даних для ключа; - Значення
Vвідповідає типу даних для значення.
Таким чином, при оголошенні цієї структури даних ми вказуємо типи даних для наших пар ключ-значення.
Тепер розглянемо методи, визначені в інтерфейсі Map.
Методи
V put(K key, V value): встановлює вказане значення для вказаного ключа у цьому Map. Якщо у Map раніше вже існувало відображення для цього ключа, старе значення замінюється.
Main.java
1234567891011121314package com.example; import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.put(1, "One"); map.put(2, "Two"); map.put(3, "Three"); System.out.println(map); } }
V get(Object key): повертає значення, яке відповідає вказаному ключу, або null, якщо цей Map не містить відображення для ключа.
Тут ми вказуємо ключ для отримання відповідного значення.
Отримаємо значення за ключем 2:
Main.java
12345678910111213141516package com.example; import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.put(1, "One"); map.put(2, "Two"); map.put(3, "Three"); System.out.println("Map: " + map); String value = map.get(2); System.out.println("Value: " + value); } }
-
boolean containsKey(Object key): повертаєtrue, якщоMapмістить відображення для вказаного ключа; -
boolean containsValue(Object value): повертаєtrue, якщоMapмістить один або більше ключів, що відображаються на вказане значення.
Ці два методи очевидно пов'язані і допомагають визначити, чи містить вказаний Map потрібні ключі або значення. Ці методи зручно використовувати як умови, оскільки вони повертають boolean значення.
Розглянемо приклад:
Main.java
12345678910111213141516171819202122232425package com.example; import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.put(1, "One"); map.put(2, "Two"); map.put(3, "Three"); System.out.println("Map: " + map); if (map.containsKey(2)) { System.out.println("Value with key 2: " + map.get(2)); } else { System.out.println("There is no value with key 2!"); } if (map.containsValue("Four")) { System.out.println(map.get(4)); } else { System.out.println("There is no key with value \"Four\"!"); } } }
У наведеному вище прикладі перевіряється наявність ключа та наявність значення у Map. Якщо значення знайдено, вони відображаються у консолі. Якщо таких значень немає, виводяться повідомлення про відсутність таких даних.
-
boolean isEmpty(): повертаєtrue, якщо цейMapне містить жодних пар ключ-значення; -
V remove(Object key): видаляє відображення для заданого ключа з цьогоMap, якщо він присутній, і повертає попереднє значення.
Як і в інших структурах даних, можна видаляти елементи з Map.
Main.java
12345678910111213141516package com.example; import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.put(1, "One"); map.put(2, "Two"); map.put(3, "Three"); System.out.println("Map: " + map); String removedElement = map.remove(3); System.out.println("Removed value: " + removedElement + ".\nMap after the removal operation: " + map); } }
Таким чином, ми можемо видаляти елементи за ключем.
Основні методи для керування Map
Далі наведені методи, з якими ви вже знайомі, і я їх перерахую без прикладів. Але залишилися також цікаві методи.
Почнемо з основних:
-
void clear(): видаляє всі елементи зMap; -
int size(): повертає кількість пар ключ-значення у цьомуMap; -
void putAll(Map<? extends K, ? extends V> m): копіює всі відображення із вказаногоMapу цейMap.
Тепер перейдемо до методів, які повертають колекцію зі значеннями (або ключами) з Map. Іншими словами, ми отримуємо з цієї структури даних структуру, що містить лише значення (або ключі).
Наприклад, ArrayList<>.
Main.java
12345678910111213141516package com.example; import java.util.*; public class Main { public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.put(1, "One"); map.put(2, "Two"); map.put(3, "Three"); System.out.println("Map: " + map); Collection<String> list; list = map.values(); System.out.println("Values" + list); } }
Тут ми отримали колекцію значень із Map.
Тепер цю колекцію можна передати в ArrayList:
Main.java
123456789101112131415161718package com.example; import java.util.*; public class Main { public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.put(1, "One"); map.put(2, "Two"); map.put(3, "Three"); System.out.println("Map: " + map); Collection<String> collection; collection = map.values(); System.out.println("Values" + collection); List<String> arrayList = new ArrayList<>(collection); System.out.println("ArrayList: " + arrayList); } }
Ми ініціалізували ArrayList, використовуючи значення з Map.
Існує також метод, який повертає ключі з Map. Однак ці ключі повертаються у вигляді структури під назвою Set. Ми не будемо зараз детально розглядати цю структуру даних; варто зазначити, що Set — це структура даних, яка містить виключно унікальні значення.
Розглянемо цей метод:
Set<K> keySet(): повертає представлення ключів у вигляді Set, які містяться у цьому Map.
Main.java
12345678910111213141516package com.example; import java.util.*; public class Main { public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.put(1, "One"); map.put(2, "Two"); map.put(3, "Three"); System.out.println("Map: " + map); Set<Integer> keys; keys = map.keySet(); System.out.println("Keys: " + keys); } }
Таким чином, ми також можемо отримати набір усіх ключів з Map.
Отже, здається, ми завершили з методами. Тепер розглянемо використання Map, а також практичні приклади:
Використання Map
Структура типу ключ-значення має багато практичних застосувань. Розглянемо найпростішу з таких структур: система оцінювання студентів.
Створимо Map, де ключ має тип String, що представляє ім'я студента, а значення має тип Integer, що представляє оцінку студента. Таким чином, можна призначати оцінки студентам і легко отримувати оцінку конкретного студента за ключем:
Main.java
12345678910111213141516package com.example; import java.util.*; public class Main { public static void main(String[] args) { Map<String, Integer> studentsGrades = new HashMap<>(); studentsGrades.put("Bob", 9); studentsGrades.put("Alice", 8); studentsGrades.put("Mike", 5); studentsGrades.put("John", 10); studentsGrades.put("Martin", 7); studentsGrades.put("Peter", 5); System.out.println("Student's grades: " + studentsGrades); } }
Тепер уявімо, що нам потрібно отримати оцінки Mike та Alice, а потім порівняти їх. Це можна легко зробити за допомогою методів, які ви вивчили вище. Реалізуємо це у коді:
Main.java
123456789101112131415161718192021package com.example; import java.util.*; public class Main { public static void main(String[] args) { Map<String, Integer> studentsGrades = new HashMap<>(); studentsGrades.put("Bob", 9); studentsGrades.put("Alice", 8); studentsGrades.put("Mike", 5); studentsGrades.put("John", 10); studentsGrades.put("Martin", 7); studentsGrades.put("Peter", 5); System.out.println("Student's grades: " + studentsGrades); Integer mikeGrade = studentsGrades.get("Mike"); Integer aliceGrade = studentsGrades.get("Alice"); System.out.println(mikeGrade.compareTo(aliceGrade) == -1 ? "Alice's grade is higher": "Mike's grade is higher"); } }
Було використано тернарний оператор та метод compareTo() обгортки Integer. Якщо ви не розумієте, як це працює, це можна пояснити наступним чином:
Main.java
12345678910111213141516171819202122232425package com.example; import java.util.*; public class Main { public static void main(String[] args) { Map<String, Integer> studentsGrades = new HashMap<>(); studentsGrades.put("Bob", 9); studentsGrades.put("Alice", 8); studentsGrades.put("Mike", 5); studentsGrades.put("John", 10); studentsGrades.put("Martin", 7); studentsGrades.put("Peter", 5); System.out.println("Student's grades: " + studentsGrades); Integer mikeGrade = studentsGrades.get("Mike"); Integer aliceGrade = studentsGrades.get("Alice"); if (mikeGrade.compareTo(aliceGrade) == -1) { System.out.println("Alice's grade is higher"); } else { System.out.println("Mike's grade is higher"); } } }
Тепер розглянемо ситуацію, коли потрібно зібрати всіх студентів з оцінкою вище 7 (не включаючи 7). Це стає цікаво, і зараз я поясню, як це зробити!
Ітерація по Map
Ітерацію по елементах Map у Java можна виконати різними способами, які надає інтерфейс Map та його реалізації. Ось декілька способів ітерації по Map:
Ітерація по ключах (keySet()): метод keySet() повертає множину всіх ключів у Map. Цю множину можна використати для ітерації по ключах та отримання відповідних значень.
Main.java
12345678910111213141516package com.example; import java.util.*; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("Key1", 1); map.put("Key2", 2); for (String key : map.keySet()) { Integer value = map.get(key); System.out.println("Key: " + key + ", Value: " + value); } } }
Ітерація по значеннях (values()): метод values() повертає колекцію всіх значень у Map. Цю колекцію можна використовувати для ітерації по значеннях.
Main.java
123456789101112131415package com.example; import java.util.*; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("Key1", 1); map.put("Key2", 2); for (Integer value : map.values()) { System.out.println("Value: " + value); } } }
Ітерація по парах ключ-значення (entrySet()): метод entrySet() повертає набір об'єктів Map.Entry, які представляють пари ключ-значення. Це дозволяє ітеруватися безпосередньо по парах.
Main.java
1234567891011121314151617package com.example; import java.util.*; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("Key1", 1); map.put("Key2", 2); for (Map.Entry<String, Integer> entry : map.entrySet()) { String key = entry.getKey(); Integer value = entry.getValue(); System.out.println("Key: " + key + ", Value: " + value); } } }
Розглянемо це детальніше. Спочатку це може здатися надзвичайно складним для розуміння, але не потрібно заглиблюватися в деталі роботи, оскільки синтаксис завжди однаковий.
Map.Entry<K, V> entry : map.entrySet()
Використовуючи об'єкт entry, можна одночасно отримати і ключ, і значення у Map. Тепер виконаємо завдання, наведене раніше, використовуючи entry set: отримати всіх студентів з оцінкою більшою за 7. Для цього використаємо перевірку через entry.getValue(), і коли знайдемо відповідних студентів, додамо їх ключі у заздалегідь створений ArrayList:
Main.java
1234567891011121314151617181920212223242526package com.example; import java.util.*; public class Main { public static void main(String[] args) { Map<String, Integer> studentsGrades = new HashMap<>(); studentsGrades.put("Bob", 9); studentsGrades.put("Alice", 8); studentsGrades.put("Mike", 5); studentsGrades.put("John", 10); studentsGrades.put("Martin", 7); studentsGrades.put("Peter", 5); System.out.println("Student's grades: " + studentsGrades); List<String> studentsWithGradeHigherThanSeven = new ArrayList<>(); for (Map.Entry<String, Integer> entry : studentsGrades.entrySet()) { if (entry.getValue() > 7) { studentsWithGradeHigherThanSeven.add(entry.getKey()); } } System.out.println(studentsWithGradeHigherThanSeven); } }
Отже, ви можете ітеруватися по Map і знаходити потрібний список студентів, які склали іспит!
Entry set — це дуже корисний інструмент, оскільки дозволяє різними способами ітерації по Map за допомогою циклу, маючи доступ і до ключа, і до значення.
У наступному розділі ми детально розглянемо, як насправді працює HashMap, який ми так активно використовували у цьому розділі!
1. Який інтерфейс у Java представляє колекцію пар ключ-значення?
2. Як перебрати всі ключі в Map за допомогою циклу for-each?
3. Яке призначення методу values() у Map?
4. Який метод використовується для перевірки наявності певного ключа у Map?
5. Який метод використовується для видалення пари ключ-значення з Map у Java?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Чудово!
Completion показник покращився до 4
Що таке Map?
Свайпніть щоб показати меню
Ми розглянемо інтерфейс Map у Java. Інтерфейс Map є частиною Java Collections framework і визначає методи для роботи з даними у вигляді пар ключ-значення.
Розглянемо визначення:
Основна реалізація такої структури даних у Java — це HashMap, яка реалізує інтерфейс Map. Дослідимо основні методи та принципи роботи цієї реалізації.
Почнемо з оголошення та методів:
Main.java
1Map<K, V> map = new HashMap<>();
Тут ви бачите, що у generics або діамантових дужках вказуються два значення:
- Значення
Kвідповідає типу даних для ключа; - Значення
Vвідповідає типу даних для значення.
Таким чином, при оголошенні цієї структури даних ми вказуємо типи даних для наших пар ключ-значення.
Тепер розглянемо методи, визначені в інтерфейсі Map.
Методи
V put(K key, V value): встановлює вказане значення для вказаного ключа у цьому Map. Якщо у Map раніше вже існувало відображення для цього ключа, старе значення замінюється.
Main.java
1234567891011121314package com.example; import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.put(1, "One"); map.put(2, "Two"); map.put(3, "Three"); System.out.println(map); } }
V get(Object key): повертає значення, яке відповідає вказаному ключу, або null, якщо цей Map не містить відображення для ключа.
Тут ми вказуємо ключ для отримання відповідного значення.
Отримаємо значення за ключем 2:
Main.java
12345678910111213141516package com.example; import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.put(1, "One"); map.put(2, "Two"); map.put(3, "Three"); System.out.println("Map: " + map); String value = map.get(2); System.out.println("Value: " + value); } }
-
boolean containsKey(Object key): повертаєtrue, якщоMapмістить відображення для вказаного ключа; -
boolean containsValue(Object value): повертаєtrue, якщоMapмістить один або більше ключів, що відображаються на вказане значення.
Ці два методи очевидно пов'язані і допомагають визначити, чи містить вказаний Map потрібні ключі або значення. Ці методи зручно використовувати як умови, оскільки вони повертають boolean значення.
Розглянемо приклад:
Main.java
12345678910111213141516171819202122232425package com.example; import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.put(1, "One"); map.put(2, "Two"); map.put(3, "Three"); System.out.println("Map: " + map); if (map.containsKey(2)) { System.out.println("Value with key 2: " + map.get(2)); } else { System.out.println("There is no value with key 2!"); } if (map.containsValue("Four")) { System.out.println(map.get(4)); } else { System.out.println("There is no key with value \"Four\"!"); } } }
У наведеному вище прикладі перевіряється наявність ключа та наявність значення у Map. Якщо значення знайдено, вони відображаються у консолі. Якщо таких значень немає, виводяться повідомлення про відсутність таких даних.
-
boolean isEmpty(): повертаєtrue, якщо цейMapне містить жодних пар ключ-значення; -
V remove(Object key): видаляє відображення для заданого ключа з цьогоMap, якщо він присутній, і повертає попереднє значення.
Як і в інших структурах даних, можна видаляти елементи з Map.
Main.java
12345678910111213141516package com.example; import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.put(1, "One"); map.put(2, "Two"); map.put(3, "Three"); System.out.println("Map: " + map); String removedElement = map.remove(3); System.out.println("Removed value: " + removedElement + ".\nMap after the removal operation: " + map); } }
Таким чином, ми можемо видаляти елементи за ключем.
Основні методи для керування Map
Далі наведені методи, з якими ви вже знайомі, і я їх перерахую без прикладів. Але залишилися також цікаві методи.
Почнемо з основних:
-
void clear(): видаляє всі елементи зMap; -
int size(): повертає кількість пар ключ-значення у цьомуMap; -
void putAll(Map<? extends K, ? extends V> m): копіює всі відображення із вказаногоMapу цейMap.
Тепер перейдемо до методів, які повертають колекцію зі значеннями (або ключами) з Map. Іншими словами, ми отримуємо з цієї структури даних структуру, що містить лише значення (або ключі).
Наприклад, ArrayList<>.
Main.java
12345678910111213141516package com.example; import java.util.*; public class Main { public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.put(1, "One"); map.put(2, "Two"); map.put(3, "Three"); System.out.println("Map: " + map); Collection<String> list; list = map.values(); System.out.println("Values" + list); } }
Тут ми отримали колекцію значень із Map.
Тепер цю колекцію можна передати в ArrayList:
Main.java
123456789101112131415161718package com.example; import java.util.*; public class Main { public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.put(1, "One"); map.put(2, "Two"); map.put(3, "Three"); System.out.println("Map: " + map); Collection<String> collection; collection = map.values(); System.out.println("Values" + collection); List<String> arrayList = new ArrayList<>(collection); System.out.println("ArrayList: " + arrayList); } }
Ми ініціалізували ArrayList, використовуючи значення з Map.
Існує також метод, який повертає ключі з Map. Однак ці ключі повертаються у вигляді структури під назвою Set. Ми не будемо зараз детально розглядати цю структуру даних; варто зазначити, що Set — це структура даних, яка містить виключно унікальні значення.
Розглянемо цей метод:
Set<K> keySet(): повертає представлення ключів у вигляді Set, які містяться у цьому Map.
Main.java
12345678910111213141516package com.example; import java.util.*; public class Main { public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.put(1, "One"); map.put(2, "Two"); map.put(3, "Three"); System.out.println("Map: " + map); Set<Integer> keys; keys = map.keySet(); System.out.println("Keys: " + keys); } }
Таким чином, ми також можемо отримати набір усіх ключів з Map.
Отже, здається, ми завершили з методами. Тепер розглянемо використання Map, а також практичні приклади:
Використання Map
Структура типу ключ-значення має багато практичних застосувань. Розглянемо найпростішу з таких структур: система оцінювання студентів.
Створимо Map, де ключ має тип String, що представляє ім'я студента, а значення має тип Integer, що представляє оцінку студента. Таким чином, можна призначати оцінки студентам і легко отримувати оцінку конкретного студента за ключем:
Main.java
12345678910111213141516package com.example; import java.util.*; public class Main { public static void main(String[] args) { Map<String, Integer> studentsGrades = new HashMap<>(); studentsGrades.put("Bob", 9); studentsGrades.put("Alice", 8); studentsGrades.put("Mike", 5); studentsGrades.put("John", 10); studentsGrades.put("Martin", 7); studentsGrades.put("Peter", 5); System.out.println("Student's grades: " + studentsGrades); } }
Тепер уявімо, що нам потрібно отримати оцінки Mike та Alice, а потім порівняти їх. Це можна легко зробити за допомогою методів, які ви вивчили вище. Реалізуємо це у коді:
Main.java
123456789101112131415161718192021package com.example; import java.util.*; public class Main { public static void main(String[] args) { Map<String, Integer> studentsGrades = new HashMap<>(); studentsGrades.put("Bob", 9); studentsGrades.put("Alice", 8); studentsGrades.put("Mike", 5); studentsGrades.put("John", 10); studentsGrades.put("Martin", 7); studentsGrades.put("Peter", 5); System.out.println("Student's grades: " + studentsGrades); Integer mikeGrade = studentsGrades.get("Mike"); Integer aliceGrade = studentsGrades.get("Alice"); System.out.println(mikeGrade.compareTo(aliceGrade) == -1 ? "Alice's grade is higher": "Mike's grade is higher"); } }
Було використано тернарний оператор та метод compareTo() обгортки Integer. Якщо ви не розумієте, як це працює, це можна пояснити наступним чином:
Main.java
12345678910111213141516171819202122232425package com.example; import java.util.*; public class Main { public static void main(String[] args) { Map<String, Integer> studentsGrades = new HashMap<>(); studentsGrades.put("Bob", 9); studentsGrades.put("Alice", 8); studentsGrades.put("Mike", 5); studentsGrades.put("John", 10); studentsGrades.put("Martin", 7); studentsGrades.put("Peter", 5); System.out.println("Student's grades: " + studentsGrades); Integer mikeGrade = studentsGrades.get("Mike"); Integer aliceGrade = studentsGrades.get("Alice"); if (mikeGrade.compareTo(aliceGrade) == -1) { System.out.println("Alice's grade is higher"); } else { System.out.println("Mike's grade is higher"); } } }
Тепер розглянемо ситуацію, коли потрібно зібрати всіх студентів з оцінкою вище 7 (не включаючи 7). Це стає цікаво, і зараз я поясню, як це зробити!
Ітерація по Map
Ітерацію по елементах Map у Java можна виконати різними способами, які надає інтерфейс Map та його реалізації. Ось декілька способів ітерації по Map:
Ітерація по ключах (keySet()): метод keySet() повертає множину всіх ключів у Map. Цю множину можна використати для ітерації по ключах та отримання відповідних значень.
Main.java
12345678910111213141516package com.example; import java.util.*; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("Key1", 1); map.put("Key2", 2); for (String key : map.keySet()) { Integer value = map.get(key); System.out.println("Key: " + key + ", Value: " + value); } } }
Ітерація по значеннях (values()): метод values() повертає колекцію всіх значень у Map. Цю колекцію можна використовувати для ітерації по значеннях.
Main.java
123456789101112131415package com.example; import java.util.*; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("Key1", 1); map.put("Key2", 2); for (Integer value : map.values()) { System.out.println("Value: " + value); } } }
Ітерація по парах ключ-значення (entrySet()): метод entrySet() повертає набір об'єктів Map.Entry, які представляють пари ключ-значення. Це дозволяє ітеруватися безпосередньо по парах.
Main.java
1234567891011121314151617package com.example; import java.util.*; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("Key1", 1); map.put("Key2", 2); for (Map.Entry<String, Integer> entry : map.entrySet()) { String key = entry.getKey(); Integer value = entry.getValue(); System.out.println("Key: " + key + ", Value: " + value); } } }
Розглянемо це детальніше. Спочатку це може здатися надзвичайно складним для розуміння, але не потрібно заглиблюватися в деталі роботи, оскільки синтаксис завжди однаковий.
Map.Entry<K, V> entry : map.entrySet()
Використовуючи об'єкт entry, можна одночасно отримати і ключ, і значення у Map. Тепер виконаємо завдання, наведене раніше, використовуючи entry set: отримати всіх студентів з оцінкою більшою за 7. Для цього використаємо перевірку через entry.getValue(), і коли знайдемо відповідних студентів, додамо їх ключі у заздалегідь створений ArrayList:
Main.java
1234567891011121314151617181920212223242526package com.example; import java.util.*; public class Main { public static void main(String[] args) { Map<String, Integer> studentsGrades = new HashMap<>(); studentsGrades.put("Bob", 9); studentsGrades.put("Alice", 8); studentsGrades.put("Mike", 5); studentsGrades.put("John", 10); studentsGrades.put("Martin", 7); studentsGrades.put("Peter", 5); System.out.println("Student's grades: " + studentsGrades); List<String> studentsWithGradeHigherThanSeven = new ArrayList<>(); for (Map.Entry<String, Integer> entry : studentsGrades.entrySet()) { if (entry.getValue() > 7) { studentsWithGradeHigherThanSeven.add(entry.getKey()); } } System.out.println(studentsWithGradeHigherThanSeven); } }
Отже, ви можете ітеруватися по Map і знаходити потрібний список студентів, які склали іспит!
Entry set — це дуже корисний інструмент, оскільки дозволяє різними способами ітерації по Map за допомогою циклу, маючи доступ і до ключа, і до значення.
У наступному розділі ми детально розглянемо, як насправді працює HashMap, який ми так активно використовували у цьому розділі!
1. Який інтерфейс у Java представляє колекцію пар ключ-значення?
2. Як перебрати всі ключі в Map за допомогою циклу for-each?
3. Яке призначення методу values() у Map?
4. Який метод використовується для перевірки наявності певного ключа у Map?
5. Який метод використовується для видалення пари ключ-значення з Map у Java?
Дякуємо за ваш відгук!