Spec-Zone.ru › OpenJDK 21

Интерфейс 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

Краткое описание вложенных классов

Вложенные классы/интерфейсы, объявленные в интерфейсе java.util.Map

Map.Entry<K,V>

Краткое описание методов

Модификатор и тип Метод Описание
default Map.Entry<K,V> firstEntry()
Возвращает первую пару ключ-значение в этом отображении или null если отображение пустое.
default Map.Entry<K,V> lastEntry()
Возвращает последнюю пару ключ-значение в этом отображении или null если отображение пустое.
default Map.Entry<K,V> pollFirstEntry()
Удаляет и возвращает первую пару ключ-значение в этом отображении или null если отображение пустое (необязательная операция).
default Map.Entry<K,V> pollLastEntry()
Удаляет и возвращает последнюю пару ключ-значение в этом отображении или null если отображение пустое (необязательная операция).
default V putFirst(K k, V v)
Вставляет заданную пару ключ-значение в отображение, если она ещё не присутствует, или заменяет значение пары, если она уже присутствует (необязательная операция).
default V putLast(K k, V v)
Вставляет заданную пару ключ-значение в отображение, если она ещё не присутствует, или заменяет значение пары, если она уже присутствует (необязательная операция).
SequencedMap<K,V> reversed()
Возвращает обратное отображение с обратным порядком следования элементов этого отображения.
default SequencedSet<Map.Entry<K,V>> sequencedEntrySet()
Возвращает представление SequencedSet множества пар ключ-значение entrySet этого отображения.
default SequencedSet<K> sequencedKeySet()
Возвращает представление SequencedSet множества ключей keySet этого отображения.
default SequencedCollection<V> 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API