Интерфейс 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 Framework.
- Начиная с версии:
- 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 этой карты. |
Методы, объявленные в интерфейсе 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 | Модификатор и тип | Метод | Описание |
|---|---|---|
void |
clear() |
Удаляет все отображения из этой карты (необязательная операция). |
default V |
compute |
Пытается вычислить отображение для указанного ключа и его текущего отображаемого значения или null, если текущее отображение отсутствует (необязательная операция). |
default V |
computeIfAbsent |
Если указанный ключ еще не связан со значением (или ему сопоставлено null), пытается вычислить его значение с помощью заданной функции отображения и добавляет его в эту карту, если результат не равен null (необязательная операция). |
default V |
computeIfPresent |
Если для указанного ключа присутствует ненулевое значение, пытается вычислить новое отображение, используя ключ и его текущее отображаемое значение (необязательная операция). |
boolean |
containsKey |
Возвращает true, если эта карта содержит отображение для указанного ключа. |
boolean |
containsValue |
Возвращает true, если в этой карте один или несколько ключей сопоставлены указанному значению. |
Set |
entrySet() |
Возвращает представление Set отображений, содержащихся в этой карте. |
boolean |
equals |
Сравнивает указанный объект с этой картой на равенство. |
default void |
forEach |
Выполняет заданное действие для каждой записи этой карты, пока не будут обработаны все записи или действие не выбросит исключение. |
V |
get |
Возвращает значение, сопоставленное указанному ключу, или null, если эта карта не содержит отображения для ключа. |
default V |
getOrDefault |
Возвращает значение, сопоставленное указанному ключу, или defaultValue, если эта карта не содержит отображения для ключа. |
int |
hashCode() |
Возвращает значение хеш-кода этой карты. |
boolean |
isEmpty() |
Возвращает true, если эта карта не содержит отображений «ключ-значение». |
Set |
keySet() |
Возвращает представление Set ключей, содержащихся в этой карте. |
default V |
merge |
Если указанный ключ еще не связан со значением или связан со значением null, связывает его с заданным ненулевым значением (необязательная операция). |
V |
put |
Связывает указанное значение с указанным ключом в этой карте (необязательная операция). |
void |
putAll |
Копирует все отображения из указанной карты в эту карту (необязательная операция). |
default V |
putIfAbsent |
Если указанный ключ еще не связан со значением (или ему сопоставлено null), связывает его с заданным значением и возвращает null; в противном случае возвращает текущее значение (необязательная операция). |
V |
remove |
Удаляет отображение ключа из этой карты, если оно присутствует (необязательная операция). |
default boolean |
remove |
Удаляет запись для указанного ключа, только если в данный момент ему сопоставлено указанное значение (необязательная операция). |
default V |
replace |
Заменяет запись для указанного ключа, только если в данный момент ему сопоставлено какое-либо значение (необязательная операция). |
default boolean |
replace |
Заменяет запись для указанного ключа, только если в данный момент ему сопоставлено указанное значение (необязательная операция). |
default void |
replaceAll |
Заменяет значение каждой записи результатом вызова заданной функции для этой записи, пока не будут обработаны все записи или функция не выбросит исключение (необязательная операция). |
int |
size() |
Возвращает количество отображений «ключ-значение» в этой карте. |
Collection |
values() |
Возвращает представление Collection значений, содержащихся в этой карте. |
Подробное описание методов
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,addFirstиaddLastвыбрасываютUnsupportedOperationException. МетодыgetFirstиgetLastреализованы на основе методовfirstEntryиlastEntryэтого интерфейса соответственно. МетодыremoveFirstиremoveLastреализованы на основе методовpollFirstEntryиpollLastEntryэтого интерфейса соответственно. Методreversedвозвращает представлениеsequencedKeySetпредставления этой карты с обратным порядкомreversed. Каждый из остальных его методов вызывает соответствующий метод представленияkeySetэтой карты. - Возвращает:
SequencedSetпредставлениеkeySet
sequencedValues
default SequencedCollection<V> sequencedValues()
SequencedCollection представление коллекции values этой карты.- Требования к реализации:
- Реализация в этом интерфейсе возвращает экземпляр
SequencedCollectionсо следующим поведением. Его методыadd,addAll,addFirstиaddLastвыбрасываютUnsupportedOperationException. МетодыgetFirstиgetLastреализованы на основе методовfirstEntryиlastEntryэтого интерфейса соответственно. МетодыremoveFirstиremoveLastреализованы на основе методовpollFirstEntryиpollLastEntryэтого интерфейса соответственно. Методreversedвозвращает представлениеsequencedValuesпредставления этой карты с обратным порядкомreversed. МетодыequalsиhashCodeнаследуются отObject. Каждый из остальных его методов вызывает соответствующий метод представленияvaluesэтой карты. - Возвращает:
SequencedCollectionпредставление коллекцииvalues
sequencedEntrySet
default SequencedSet<Map.Entry<K,V>> sequencedEntrySet()
SequencedSet представление entrySet этой карты.- Требования к реализации:
- Реализация в этом интерфейсе возвращает экземпляр
SequencedSetсо следующим поведением. Его методыadd,addAll,addFirstиaddLastвыбрасываютUnsupportedOperationException. МетодыgetFirstиgetLastреализованы на основе методовfirstEntryиlastEntryэтого интерфейса соответственно. МетодыremoveFirstиremoveLastреализованы на основе методовpollFirstEntryиpollLastEntryэтого интерфейса соответственно. Методreversedвозвращает представлениеsequencedEntrySetпредставления этой карты с обратным порядкомreversed. Каждый из остальных его методов вызывает соответствующий метод представленияentrySetэтой карты. - Возвращает:
SequencedSetпредставление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.