Интерфейс 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 изменит значение соответствующей пары ключ-значение в базовом отображении. Однако не определено, будут ли изменения значения в базовом отображении видны в экземпляре 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.
- С:
- 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() |
Возвращает представление SequencedSet множества пар ключ-значение entrySet этого отображения. |
default SequencedSet |
sequencedKeySet() |
Возвращает представление SequencedSet множества ключей keySet этого отображения. |
default SequencedCollection |
sequencedValues() |
Возвращает представление SequencedCollection множества значений values этого отображения. |
Методы, объявленные в интерфейсе 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()
SequencedSet представление набора ключей (keySet) этой карты.- Требования к реализации:
- Реализация в этом интерфейсе возвращает
SequencedSetэкземпляр, который ведет себя следующим образом. Его методыaddиaddAllвызываютUnsupportedOperationException. Его методreversedвозвращает представлениеsequencedKeySetпредставленияreversedэтой карты. Каждый из его других методов вызывает соответствующий метод представления набора ключей (keySet) этой карты. - Возвращает:
SequencedSetпредставление набора ключей этой карты
sequencedValues
default SequencedCollection<V> sequencedValues()
SequencedCollection представление коллекции значений (values) этой карты.- Требования к реализации:
- Реализация в этом интерфейсе возвращает
SequencedCollectionэкземпляр, который ведет себя следующим образом. Его методыaddиaddAllвызываютUnsupportedOperationException. Его методreversedвозвращает представлениеsequencedValuesпредставленияreversedэтой карты. Его методыequalsиhashCodeунаследованы отObject. Каждый из его других методов вызывает соответствующий метод представления коллекции значений (values) этой карты. - Возвращает:
SequencedCollectionпредставление коллекции значений этой карты
sequencedEntrySet
default SequencedSet<Map.Entry<K,V>> sequencedEntrySet()
SequencedSet представление набора элементов (entrySet) этой карты.- Требования к реализации:
- Реализация в этом интерфейсе возвращает
SequencedSetэкземпляр, который ведет себя следующим образом. Его методыaddиaddAllвызываютUnsupportedOperationException. Его методreversedвозвращает представлениеsequencedEntrySetпредставленияreversedэтой карты. Каждый из его других методов вызывает соответствующий метод представления набора элементов (entrySet) этой карты. - Возвращает:
SequencedSetпредставление набора элементов этой карты
© 1993, 2023, 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://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/SequencedMap.html