Интерфейс SequencedMap<K, V>
- Параметры типа:
K- тип ключей, поддерживаемых этой картойV- тип сопоставленных значений
- Все суперинтерфейсы:
Map<K,V>
- Все известные подинтерфейсы:
-
ConcurrentNavigableMap<K,,V> NavigableMap<K,,V> SortedMap<K,V>
- Все известные реализующие классы:
-
ConcurrentSkipListMap,LinkedHashMap,TreeMap
public interface SequencedMap<K,V> extends Map<K,V>
SequencedMap аналогичен порядку элементов в коллекции SequencedCollection, но порядок относится к парам «ключ-значение» вместо отдельных элементов. Массовые операции с этой картой, включая методы forEach и replaceAll, работают с парами «ключ-значение» этой карты в порядке следования.
Видовые коллекции, предоставляемые методами keySet, values, entrySet, sequencedKeySet, sequencedValues и sequencedEntrySet, отражают порядок следования элементов этой карты. Несмотря на то, что возвращаемые значения методов keySet, values и entrySet не являются упорядоченными типами, элементы в этих видовых коллекциях отражают порядок следования элементов в этой карте. Таким образом, итераторы, возвращаемые выражениями
var it1 = sequencedMap.entrySet().iterator();
var it2 = sequencedMap.sequencedEntrySet().iterator();
sequencedMap в порядке следования этой карты. Этот интерфейс предоставляет методы для добавления, получения и удаления пар «ключ-значение» на обоих концах карты в порядке следования.
Этот интерфейс также определяет метод reversed(), который предоставляет обратный порядок следования представления этой карты. В обратном порядке следования понятия «первый» и «последний» меняются местами, также как и понятия «преемник» и «предшественник». Первая пара «ключ-значение» этой карты является последней парой в обратном представлении, и наоборот. Преемник некоторой пары «ключ-значение» в этой карте является её предшественником в обратном представлении, и наоборот. Все методы, учитывающие порядок следования элементов, работают так, как если бы порядок следования был обратным. Например, метод forEach обратного представления отображает пары «ключ-значение» в порядке от последней пары к первой. Кроме того, все видовые коллекции обратного представления также отражают обратный порядок следования этой карты. Например,
var itr = sequencedMap.reversed().entrySet().iterator();
reversed и его влияние на семантику упорядочения всех применимых методов и представлений позволяет удобно выполнять итерации, поиск, копирование и потоковую обработку пар «ключ-значение» этой карты как в прямом, так и в обратном порядке. Обратный порядок следования карты, как правило, не сериализуем, даже если исходная карта сериализуема.
Экземпляры Map.Entry, полученные при итерации видового представления Map.entrySet(), видового представления sequencedEntrySet() и его обратного порядка следования, поддерживают связь с базовой картой. Эта связь гарантируется только во время итерации. Не определено, сохраняется ли связь вне итерации. Если базовая карта это позволяет, вызов метода setValue элемента изменит значение базовой пары «ключ-значение». Однако не определено, видны ли изменения значения в базовой паре «ключ-значение» в экземпляре Entry.
Методы firstEntry(), lastEntry(), pollFirstEntry() и pollLastEntry() возвращают экземпляры Map.Entry, которые представляют снимки пар «ключ-значение» на момент вызова. Они не поддерживают изменение базовой карты через необязательный метод setValue.
В зависимости от реализации экземпляры Entry, возвращаемые другими способами, могут или не могут быть связаны с базовой картой. Например, рассмотрим экземпляр Entry, полученный следующим образом:
var entry = sequencedMap.sequencedEntrySet().getFirst();
setValue экземпляра Entry, полученного таким образом, пару «ключ-значение» в базовой карте, или выбросит исключение, или изменятся ли изменения в базовой карте в этом экземпляре Entry. Этот интерфейс имеет те же требования к методам equals и hashCode, что и определенные методами Map.equals и Map.hashCode. Таким образом, две карты Map и SequencedMap будут считаться равными, если и только если они содержат одинаковые пары «ключ-значение», независимо от порядка.
Этот класс является членом Java Collections Framework.
- Since:
- 21
Краткое описание вложенных классов
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
default Map.Entry |
firstEntry() |
Возвращает первую пару «ключ-значение» в этой карте, или null, если карта пустая. |
default Map.Entry |
lastEntry() |
Возвращает последнюю пару «ключ-значение» в этой карте, или null, если карта пустая. |
default Map.Entry |
pollFirstEntry() |
Удаляет и возвращает первую пару «ключ-значение» в этой карте, или null, если карта пустая (необязательная операция). |
default Map.Entry |
pollLastEntry() |
Удаляет и возвращает последнюю пару «ключ-значение» в этой карте, или null, если карта пустая (необязательная операция). |
default V |
putFirst |
Вставляет заданную пару «ключ-значение» в карту, если она ещё не присутствует, или заменяет значение пары, если она уже присутствует (необязательная операция). |
default V |
putLast |
Вставляет заданную пару «ключ-значение» в карту, если она ещё не присутствует, или заменяет значение пары, если она уже присутствует (необязательная операция). |
SequencedMap |
reversed() |
Возвращает обратный порядок следования представления этой карты. |
default SequencedSet |
sequencedEntrySet() |
Возвращает видовое представление набора пар «ключ-значение» этой карты. |
default SequencedSet |
sequencedKeySet() |
Возвращает видовое представление набора ключей этой карты. |
default SequencedCollection |
sequencedValues() |
Возвращает видовое представление коллекции значений этой карты. |
Методы, объявленные в интерфейсе java.util.Map
clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values
Подробное описание методов
reversed
SequencedMap<K,V> reversed()
- Возвращает:
- представление этого отображения в обратном порядке
firstEntry
default Map.Entry<K,V> firstEntry()
null, если отображение пусто.- Требования к реализации:
- Реализация в этом интерфейсе получает итератор набора элементов (entrySet) этого отображения. Если итератор содержит элемент, он возвращает неизменяемую копию этого элемента. В противном случае возвращает null.
- Возвращает:
- первое сопоставление ключ-значение или
null, если отображение пусто
lastEntry
default Map.Entry<K,V> lastEntry()
null, если отображение пусто.- Требования к реализации:
- Реализация в этом интерфейсе получает итератор набора элементов (entrySet) обратного представления этого отображения. Если итератор содержит элемент, он возвращает неизменяемую копию этого элемента. В противном случае возвращает null.
- Возвращает:
- последнее сопоставление ключ-значение или
null, если отображение пусто
pollFirstEntry
default Map.Entry<K,V> pollFirstEntry()
null, если отображение пусто (необязательная операция).- Требования к реализации:
- Реализация в этом интерфейсе получает итератор набора элементов (entrySet) этого отображения. Если итератор содержит элемент, он вызывает
removeна итераторе и затем возвращает неизменяемую копию этого элемента. В противном случае возвращает null. - Возвращает:
- удаленный первый элемент этого отображения или
null, если отображение пусто - Исключения:
-
UnsupportedOperationException- если реализация этой коллекции не поддерживает эту операцию
pollLastEntry
default Map.Entry<K,V> pollLastEntry()
null, если отображение пусто (необязательная операция).- Требования к реализации:
- Реализация в этом интерфейсе получает итератор набора элементов (entrySet) обратного представления этого отображения. Если итератор содержит элемент, он вызывает
removeна итераторе и затем возвращает неизменяемую копию этого элемента. В противном случае возвращает null. - Возвращает:
- удаленный последний элемент этого отображения или
null, если отображение пусто - Исключения:
-
UnsupportedOperationException- если реализация этой коллекции не поддерживает эту операцию
putFirst
default V putFirst(K k, V v)
- Требования к реализации:
- Реализация в этом интерфейсе всегда выбрасывает
UnsupportedOperationException. - Параметры:
-
k- ключ -
v- значение - Возвращает:
- значение, ранее связанное с k, или null, если такового не было
- Исключения:
-
UnsupportedOperationException- если реализация этой коллекции не поддерживает эту операцию
putLast
default V putLast(K k, V v)
- Требования к реализации:
- Реализация в этом интерфейсе всегда выбрасывает
UnsupportedOperationException. - Параметры:
-
k- ключ -
v- значение - Возвращает:
- значение, ранее связанное с k, или null, если такового не было
- Исключения:
-
UnsupportedOperationException- если реализация этой коллекции не поддерживает эту операцию
sequencedKeySet
default SequencedSet<K> sequencedKeySet()
- Требования к реализации:
- Реализация в этом интерфейсе возвращает экземпляр, который ведет себя следующим образом. Его методы
addиaddAllвыбрасываютUnsupportedOperationException. Его методreversedвозвращает представление упорядоченного набора ключей (sequencedKeySet) обратного представления (reversed) этого отображения. Каждый из его других методов вызывает соответствующий метод представления набора ключей (keySet) этого отображения. - Возвращает:
- упорядоченное представление набора ключей (keySet) этого отображения
sequencedValues
default SequencedCollection<V> sequencedValues()
- Требования к реализации:
- Реализация в этом интерфейсе возвращает экземпляр, который ведет себя следующим образом. Его методы
addиaddAllвыбрасываютUnsupportedOperationException. Его методreversedвозвращает представление упорядоченной коллекции значений (sequencedValues) обратного представления (reversed) этого отображения. Его методыequalsиhashCodeунаследованы отObject. Каждый из его других методов вызывает соответствующий метод представления коллекции значений (values) этого отображения. - Возвращает:
- упорядоченное представление коллекции значений (values) этого отображения
sequencedEntrySet
default SequencedSet<Map.Entry<K,V>> sequencedEntrySet()
- Требования к реализации:
- Реализация в этом интерфейсе возвращает экземпляр, который ведет себя следующим образом. Его методы
addиaddAllвыбрасываютUnsupportedOperationException. Его методreversedвозвращает представление упорядоченного набора элементов (sequencedEntrySet) обратного представления (reversed) этого отображения. Каждый из его других методов вызывает соответствующий метод представления набора элементов (entrySet) этого отображения. - Возвращает:
- упорядоченное представление набора элементов (entrySet) этого отображения
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/SequencedMap.html