Интерфейс SequencedMap
Интерфейс SequencedMap расширяет обычный интерфейс Map и добавляет
гарантию того, что элементы хранятся в определённом порядке. В отличие от
обычной карты, где порядок не гарантируется, SequencedMap предоставляет
методы для доступа к первому и последнему элементу, а также для получения
обратного представления карты. Этот интерфейс появился в Java 21.
Основные методы включают firstEntry и lastEntry для получения
первой и последней пары ключ-значение, pollFirstEntry и
pollLastEntry для извлечения и удаления этих пар, а также
reversed для получения обратного представления карты.
Синтаксис
interface SequencedMap<K, V> extends Map<K, V>
Пример
Давайте создадим SequencedMap на основе LinkedHashMap и
получим его первый и последний элементы:
import java.util.LinkedHashMap;
import java.util.SequencedMap;
public class Main
{
public static void main(String[] args)
{
SequencedMap<String, Integer> map = new LinkedHashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
System.out.println(map.firstEntry());
System.out.println(map.lastEntry());
}
}
Результат выполнения кода:
a=1
c=3
Пример
Давайте извлечём и удалим первый и последний элементы:
import java.util.LinkedHashMap;
import java.util.SequencedMap;
public class Main
{
public static void main(String[] args)
{
SequencedMap<String, Integer> map = new LinkedHashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
System.out.println(map.pollFirstEntry());
System.out.println(map.pollLastEntry());
System.out.println(map);
}
}
Результат выполнения кода:
a=1
c=3
{b=2}
Пример
Давайте получим обратное представление карты:
import java.util.LinkedHashMap;
import java.util.SequencedMap;
public class Main
{
public static void main(String[] args)
{
SequencedMap<String, Integer> map = new LinkedHashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
SequencedMap<String, Integer> reversed = map.reversed();
System.out.println(reversed);
}
}
Результат выполнения кода:
{c=3, b=2, a=1}
Смотрите также
-
интерфейс
Map,
который представляет базовую карту -
класс
LinkedHashMap,
который реализует упорядоченную карту -
метод
sequencedKeySet,
который возвращает упорядоченное множество ключей -
интерфейс
NavigableMap,
который расширяет SortedMap