Урок 22: Коллекции Map
Коллекции типа Map
в Java представляют собой коллекции пар "ключ-значение". Это позволяет эффективно хранить и извлекать данные по уникальным ключам. Основные реализации интерфейса Map
включают HashMap
, LinkedHashMap
и TreeMap
, каждая из которых имеет свои особенности и области применения.
HashMap
HashMap
является наиболее часто используемой реализацией Map
. Она обеспечивает быструю вставку, удаление и поиск элементов, но не гарантирует порядка элементов.
Пример использования HashMap
Рассмотрим пример работы с HashMap
:
import java.util.HashMap;
import java.util.Map;
public class HashMapExample {
public static void main(String[] args) {
Map map = new HashMap<>();
map.put("Apple", 10);
map.put("Banana", 20);
map.put("Orange", 30);
for (Map.Entry entry : map.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
Результат выполнения
Apple: 10
Banana: 20
Orange: 30
TreeMap
TreeMap
обеспечивает хранение элементов в отсортированном порядке по ключам. Это делает его полезным, когда требуется сортировка по ключам.
Пример использования TreeMap
Пример работы с TreeMap
:
import java.util.Map;
import java.util.TreeMap;
public class TreeMapExample {
public static void main(String[] args) {
Map map = new TreeMap<>();
map.put("Apple", 10);
map.put("Banana", 20);
map.put("Orange", 30);
for (Map.Entry entry : map.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
Результат выполнения
Apple: 10
Banana: 20
Orange: 30
Упражнения
Упражнение 1: Работа с HashMap
Напишите программу, которая создает карту студентов и их баллов и выводит эти данные на экран.
Решение:
import java.util.HashMap;
import java.util.Map;
public class StudentMap {
public static void main(String[] args) {
Map students = new HashMap<>();
students.put("Анна", 85);
students.put("Иван", 90);
students.put("Мария", 78);
for (Map.Entry entry : students.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
Объяснение: Программа создает карту студентов и их баллов с использованием HashMap
и выводит эти данные на экран с помощью цикла for-each
.
Упражнение 2: Работа с LinkedHashMap
Напишите программу, которая создает упорядоченную карту книг и их авторов и выводит эти данные на экран.
Решение:
import java.util.LinkedHashMap;
import java.util.Map;
public class BookMap {
public static void main(String[] args) {
Map books = new LinkedHashMap<>();
books.put("Война и мир", "Лев Толстой");
books.put("Преступление и наказание", "Федор Достоевский");
books.put("Мастер и Маргарита", "Михаил Булгаков");
for (Map.Entry entry : books.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
Объяснение: Программа создает упорядоченную карту книг и их авторов с использованием LinkedHashMap
и выводит эти данные на экран с помощью цикла for-each
.