Интерфейс Java SortedMap: обзор, методы и реализация TreeMap
Интерфейс Java SortedMap
В этом руководстве мы изучим интерфейс Java SortedMap, его ключевые методы и использование с классом TreeMap.
Интерфейс Java SortedMap, часть Collections Framework, гарантирует, что ключи карты хранятся в отсортированном порядке. Он расширяет базовый интерфейс Map.
Класс, реализующий SortedMap
Поскольку SortedMap — интерфейс, его нельзя инстанцировать напрямую. Конкретная реализация, предоставляемая JDK — класс TreeMap, который хранит записи в порядке возрастания ключей по умолчанию.
Как использовать SortedMap
Для работы с SortedMap сначала импортируйте интерфейс:
import java.util.SortedMap;
import java.util.TreeMap;
Затем создайте экземпляр, используя TreeMap:
SortedMap<Key, Value> numbers = new TreeMap<>();
В этом примере numbers будет хранить ключи в естественном порядке возрастания. Можно также передать пользовательский Comparator, если нужен другой порядок.
Определения:
- Key — уникальный идентификатор, отображающийся на значение.
- Value — данные, ассоциированные с ключом.
Использование конструктора без аргументов означает, что карта будет отсортирована согласно естественному упорядочиванию типа ключа.
Ключевые методы SortedMap
Помимо всех методов, унаследованных от Map, SortedMap добавляет следующие операции:
- comparator() — возвращает
Comparator, используемый для упорядочивания ключей, илиnull, если применяется естественный порядок. - firstKey() — получает наименьший ключ в карте.
- lastKey() — получает наибольший ключ.
- headMap(K toKey) — возвращает представление карты, ключи которой строго меньше
toKey. - tailMap(K fromKey) — возвращает представление карты, ключи которой больше или равны
fromKey. - subMap(K fromKey, K toKey) — возвращает представление карты, ключи которой находятся в диапазоне от
fromKey(включительно) доtoKey(исключительно).
Для более подробных деталей обратитесь к документации Java SortedMap.
TreeMap: конкретная реализация SortedMap
import java.util.SortedMap;
import java.util.TreeMap;
public class Main {
public static void main(String[] args) {
// Создание SortedMap через TreeMap
SortedMap<String, Integer> numbers = new TreeMap<>();
// Вставка элементов в карту
numbers.put("Two", 2);
numbers.put("One", 1);
System.out.println("SortedMap: " + numbers);
// Получение первого и последнего ключей
System.out.println("First Key: " + numbers.firstKey());
System.out.println("Last Key: " + numbers.lastKey());
// Удаление записи по ключу
int removed = numbers.remove("One");
System.out.println("Removed Value: " + removed);
}
}
Вывод
SortedMap: {One=1, Two=2} First Key: One Last Key: Two Removed Value: 1
Этот пример демонстрирует поведение SortedMap при использовании с TreeMap. Для большего о TreeMap см. документацию Java TreeMap.
java
- Освоение интерфейсов в C#: определение, реализация и практические примеры
- Освоение операторов Java: типы, синтаксис и практические примеры
- Интерфейсы в Java: концепции, реализация и лучшие практики
- Try-with-resources в Java: автоматическое управление ресурсами
- Аннотации в Java: типы, размещение и практические примеры
- Освоение интерфейса NavigableSet в Java: навигация, сортировка и практические примеры
- Интерфейс vs Абстрактный класс в Java: Как выбрать правильную абстракцию
- Интерфейсы в Java: определение, использование и лучшие практики
- Java 9 Collection Factory Methods: удобное создание неизменяемых List, Set, Map
- Java 9 Private Interface Methods: инкапсуляция и повторное использование кода