Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
31 Янв 2024
2 мин
179

Работа с упорядоченными картами в Java

В разработке программ на Java иногда возникает потребность не только хранить пары ключ-значение, но и иметь возможность получать упорядоченные списки

В разработке программ на Java иногда возникает потребность не только хранить пары ключ-значение, но и иметь возможность получать упорядоченные списки ключей и значений.

Давайте рассмотрим пример. Предположим, есть класс Product с полями id и name. Необходимо создать карту, где ключ — это id продукта, а значение — это name.

class Product {
    private int id;
    private String name;
    // getters and setters
}
Map<Integer, String> productMap = new HashMap<>();
productMap.put(product1.getId(), product1.getName());
productMap.put(product2.getId(), product2.getName());

Проблема в том, что HashMap не гарантирует порядок элементов. Поэтому, при обращении к ключам или значениям, порядок может отличаться от порядка добавления.

Чтобы решить эту проблему, в Java есть интерфейс NavigableMap, который расширяет SortedMap и предоставляет методы навигации.

Но самый простой способ — использовать класс LinkedHashMap. Этот класс реализует интерфейс Map и гарантирует, что порядок ключей соответствует порядку их добавления.

Map<Integer, String> productMap = new LinkedHashMap<>();
productMap.put(product1.getId(), product1.getName());
productMap.put(product2.getId(), product2.getName());

Теперь, при обращении к ключам или значениям, порядок будет всегда таким же, как при добавлении.

List<Integer> keys = new ArrayList<>(productMap.keySet());
List<String> values = new ArrayList<>(productMap.values());

Таким образом, LinkedHashMap помогает решить проблему упорядоченного хранения пар ключ-значение в Java.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий