Spec-Zone.ru › OpenJDK 27

Класс LinkedHashMap<K,V>

java.lang.Object
java.util.AbstractMap<K,V>
java.util.HashMap<K,V>
java.util.LinkedHashMap<K,V>
Параметры типа:
K - тип ключей, хранящихся в этой карте
V - тип сопоставленных значений
Все реализуемые интерфейсы:
Serializable, Cloneable, Map<K,V>, SequencedMap<K,V>
public class LinkedHashMap<K,V> extends HashMap<K,V> implements SequencedMap<K,V>

Реализация интерфейса Map на основе хеш-таблицы и связного списка с четко определенным порядком обхода. Эта реализация отличается от HashMap тем, что поддерживает двусвязный список, проходящий через все записи. Этот связный список задает порядок обхода (порядок итерации), который обычно соответствует порядку вставки ключей в карту (порядок вставки). Первая запись — вставленная раньше всех (самая старая), последняя — вставленная позже всех (самая новая). Обратите внимание, что порядок обхода не меняется, если ключ повторно вставляется в карту с помощью метода put. (Ключ k вставляется повторно в карту m, если m.put(k, v) вызывается, когда m.containsKey(k) непосредственно перед вызовом возвращает true.) Представление этой карты в обратном порядке имеет противоположный порядок: сначала идет самая новая запись, а последней — самая старая. Порядок обхода уже находящихся в карте записей можно изменить с помощью методов putFirst и putLast.

Эта реализация избавляет клиентов от неопределенного, обычно хаотичного порядка, предоставляемого HashMap (и Hashtable), не неся повышенных затрат, связанных с TreeMap. Ее можно использовать для создания копии карты с тем же порядком, что и у исходной, независимо от реализации исходной карты:

    void foo(Map<String, Integer> m) {
        Map<String, Integer> copy = new LinkedHashMap<>(m);
        ...
    }
Этот прием особенно полезен, если модуль получает карту на вход, копирует ее, а затем возвращает результаты, порядок которых определяется порядком копии. (Клиентам обычно нравится, когда результаты возвращаются в том же порядке, в котором они были переданы.)

Предусмотрен специальный constructor для создания связной хеш-карты, порядок обхода которой соответствует порядку последнего доступа к ее записям — от давно использованных к недавно использованным (порядок доступа). Такой тип карты хорошо подходит для создания кэшей LRU. Вызов методов put, putIfAbsent, get, getOrDefault, compute, computeIfAbsent, computeIfPresent или merge означает обращение к соответствующей записи (при условии, что она существует после завершения вызова). Методы replace приводят к обращению к записи только в том случае, если значение заменяется. Метод putAll обращается к каждой записи для каждого сопоставления в указанной карте в порядке, в котором сопоставления ключей и значений предоставляются итератором набора записей этой карты. Никакие другие методы не приводят к обращению к записям. Вызов этих методов для обратного представления приводит к обращению к записям базовой карты. Обратите внимание, что в обратном представлении обращение к записи перемещает ее на первое место в порядке обхода. Методы явного позиционирования, такие как putFirst или lastEntry, как для карты, так и для ее представления в обратном порядке, выполняют операцию позиционирования и не приводят к обращению к записям. Операции над представлениями keySet, values и entrySet или над их упорядоченными аналогами не влияют на порядок обхода базовой карты.

Метод removeEldestEntry(Map.Entry) можно переопределить, чтобы задать политику автоматического удаления устаревших сопоставлений при добавлении новых сопоставлений в карту. Кроме того, поскольку «самая старая» запись находится первой в порядке обхода, программы могут проверять и удалять устаревшие сопоставления с помощью методов firstEntry и pollFirstEntry.

Этот класс предоставляет все необязательные операции Map и SequencedMap и допускает нулевые элементы. Как и HashMap, он обеспечивает постоянное время выполнения основных операций (add, contains и remove) при условии, что хеш-функция равномерно распределяет элементы по корзинам. Производительность, вероятно, будет лишь немного ниже, чем у HashMap, из-за дополнительных затрат на поддержку связного списка. Исключение составляет итерация по представлениям-коллекциям LinkedHashMap: она занимает время, пропорциональное размеру карты, независимо от ее емкости. Итерация по HashMap, вероятно, будет дороже и займет время, пропорциональное ее емкости.

На производительность связной хеш-карты влияют два параметра: начальная емкость и коэффициент загрузки. Они определены так же, как и для HashMap. Однако обратите внимание, что для этого класса штраф за чрезмерно высокое значение начальной емкости менее значителен, чем для HashMap, поскольку емкость не влияет на время итерации для этого класса.

Обратите внимание, что эта реализация не является синхронизированной. Если несколько потоков одновременно обращаются к связной хеш-карте и хотя бы один из них структурно изменяет карту, доступ должен быть синхронизирован извне. Обычно для этого синхронизируют доступ к некоторому объекту, который естественным образом инкапсулирует карту. Если такого объекта нет, карту следует «обернуть» с помощью метода Collections.synchronizedMap. Лучше всего сделать это во время создания карты, чтобы предотвратить случайный несинхронизированный доступ к ней:

  Map m = Collections.synchronizedMap(new LinkedHashMap(...));
Структурным изменением считается любая операция, добавляющая или удаляющая одно или несколько сопоставлений, а также, в случае связных хеш-карт с порядком доступа, изменяющая порядок итерации. В связных хеш-картах с порядком вставки простое изменение значения, связанного с уже находящимся в карте ключом, не является структурным изменением. В связных хеш-картах с порядком доступа простой запрос к карте с помощью get является структурным изменением. )

Итераторы, возвращаемые методом iterator коллекций, возвращенных всеми методами представлений-коллекций этого класса, являются быстроотказывающими: если после создания итератора карта каким-либо образом структурно изменяется, кроме как с помощью собственного метода remove итератора, итератор выбрасывает исключение ConcurrentModificationException. Таким образом, при параллельном изменении итератор быстро и корректно завершается с ошибкой, а не рискует в неопределенный момент в будущем вести себя произвольным и непредсказуемым образом.

Обратите внимание, что гарантировать быстроотказывающее поведение итератора невозможно, поскольку, вообще говоря, при несинхронизированном параллельном изменении нельзя дать никаких строгих гарантий. Быстроотказывающие итераторы выбрасывают ConcurrentModificationException лишь при первой возможности. Поэтому было бы неправильно писать программу, корректность которой зависит от этого исключения: быстроотказывающее поведение итераторов следует использовать только для обнаружения ошибок.

Сплитераторы, возвращаемые методом spliterator коллекций, возвращенных всеми методами представлений-коллекций этого класса, являются привязываемыми с задержкой, быстроотказывающими и дополнительно сообщают о свойстве Spliterator.ORDERED.

Этот класс входит в состав Java Collections Framework.

Примечание по реализации:
Сплитераторы, возвращаемые методом spliterator коллекций, возвращенных всеми методами представлений-коллекций этого класса, создаются на основе итераторов соответствующих коллекций.
Начиная с:
1.4
См. также:
  • Object.hashCode()
  • Collection
  • Map
  • HashMap
  • TreeMap
  • Hashtable
  • Сериализованная форма

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

Вложенные классы и интерфейсы, объявленные в классе AbstractMap

AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>
Модификатор и тип Класс Описание
static class  AbstractMap.SimpleEntry<K,V>
Запись, содержащая ключ и значение.
static class  AbstractMap.SimpleImmutableEntry<K,V>
Неизменяемая запись, содержащая ключ и значение.

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

Конструктор Описание
LinkedHashMap()
Создает пустой экземпляр LinkedHashMap с порядком вставки, начальной емкостью по умолчанию (16) и коэффициентом загрузки по умолчанию (0.75).
LinkedHashMap(int initialCapacity)
Создает пустой экземпляр LinkedHashMap с порядком вставки, указанной начальной емкостью и коэффициентом загрузки по умолчанию (0.75).
LinkedHashMap(int initialCapacity, float loadFactor)
Создает пустой экземпляр LinkedHashMap с порядком вставки, указанными начальной емкостью и коэффициентом загрузки.
LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)
Создает пустой экземпляр LinkedHashMap с указанными начальной емкостью, коэффициентом загрузки и режимом упорядочения.
LinkedHashMap(Map<? extends K, ? extends V> m)
Создает экземпляр LinkedHashMap с порядком вставки и теми же сопоставлениями, что и в указанной карте.

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

Модификатор и тип Метод Описание
boolean containsValue(Object value)
Возвращает true, если эта карта сопоставляет один или несколько ключей с указанным значением.
Set<Map.Entry<K,V>> entrySet()
Возвращает представление Set сопоставлений, содержащихся в этой карте.
V get(Object key)
Возвращает значение, сопоставленное с указанным ключом, или null, если в этой карте нет сопоставления для ключа.
Set<K> keySet()
Возвращает представление Set ключей, содержащихся в этой карте.
static <K,V> LinkedHashMap<K,V> newLinkedHashMap(int numMappings)
Создает новую пустую LinkedHashMap с порядком вставки, подходящую для ожидаемого количества сопоставлений.
V putFirst(K k, V v)
Вставляет указанное сопоставление в карту, если его там еще нет, или заменяет значение сопоставления, если оно уже есть (необязательная операция).
V putLast(K k, V v)
Вставляет указанное сопоставление в карту, если его там еще нет, или заменяет значение сопоставления, если оно уже есть (необязательная операция).
protected boolean removeEldestEntry(Map.Entry<K,V> eldest)
Возвращает true, если эта карта должна удалить самую старую запись.
SequencedMap<K,V> reversed()
Возвращает представление этой карты в обратном порядке.
SequencedSet<Map.Entry<K,V>> sequencedEntrySet()
Возвращает представление SequencedSet набора entrySet этой карты.
SequencedSet<K> sequencedKeySet()
Возвращает представление SequencedSet набора keySet этой карты.
SequencedCollection<V> sequencedValues()
Возвращает представление SequencedCollection коллекции values этой карты.
Collection<V> values()
Возвращает представление Collection значений, содержащихся в этой карте.

Методы, объявленные в классе HashMap

clear, clone, compute, computeIfAbsent, computeIfPresent, containsKey, isEmpty, merge, newHashMap, put, putAll, remove, size
Модификатор и тип Метод Описание
void clear()
Удаляет все сопоставления из этой карты.
Object clone()
Возвращает поверхностную копию этого экземпляра HashMap: сами ключи и значения не клонируются.
V compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)
Пытается вычислить сопоставление для указанного ключа и текущего сопоставленного с ним значения или null, если текущего сопоставления нет (необязательная операция).
V computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction)
Если указанному ключу еще не сопоставлено значение (или ему сопоставлено null), пытается вычислить его значение с помощью заданной функции сопоставления и добавляет его в эту карту, если результат не равен null (необязательная операция).
V computeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)
Если для указанного ключа имеется ненулевое значение, пытается вычислить новое сопоставление, используя ключ и текущее сопоставленное с ним значение (необязательная операция).
boolean containsKey(Object key)
Возвращает true, если эта карта содержит сопоставление для указанного ключа.
boolean isEmpty()
Возвращает true, если эта карта не содержит сопоставлений ключей и значений.
V merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction)
Если указанному ключу еще не сопоставлено значение или ему сопоставлено null, сопоставляет ему заданное ненулевое значение (необязательная операция).
static <K,V> HashMap<K,V> newHashMap(int numMappings)
Создает новую пустую HashMap, подходящую для ожидаемого количества сопоставлений.
V put(K key, V value)
Сопоставляет указанное значение с указанным ключом в этой карте.
void putAll(Map<? extends K, ? extends V> m)
Копирует в эту карту все сопоставления из указанной карты.
V remove(Object key)
Удаляет сопоставление для указанного ключа из этой карты, если оно есть.
int size()
Возвращает количество сопоставлений ключей и значений в этой карте.

Методы, объявленные в классе AbstractMap

equals, hashCode, toString
Модификатор и тип Метод Описание
boolean equals(Object o)
Сравнивает указанный объект с этой картой на предмет равенства.
int hashCode()
Возвращает значение хеш-кода этой карты.
String toString()
Возвращает строковое представление этой карты.

Методы, объявленные в классе Object

finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация устарела и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного интервала реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного интервала реального времени.

Методы, объявленные в интерфейсе Map

forEach, getOrDefault, putIfAbsent, remove, replace, replace, replaceAll
Модификатор и тип Метод Описание
default void forEach(BiConsumer<? super K, ? super V> action)
Выполняет заданное действие для каждой записи в этой карте, пока не будут обработаны все записи или действие не выбросит исключение.
default V getOrDefault(Object key, V defaultValue)
Возвращает значение, сопоставленное с указанным ключом, или defaultValue, если в этой карте нет сопоставления для ключа.
default V putIfAbsent(K key, V value)
Если указанному ключу еще не сопоставлено значение (или ему сопоставлено null), сопоставляет ему заданное значение и возвращает null; в противном случае возвращает текущее значение (необязательная операция).
default boolean remove(Object key, Object value)
Удаляет запись для указанного ключа, только если в данный момент ему сопоставлено указанное значение (необязательная операция).
default V replace(K key, V value)
Заменяет запись для указанного ключа, только если в данный момент ему сопоставлено какое-либо значение (необязательная операция).
default boolean replace(K key, V oldValue, V newValue)
Заменяет запись для указанного ключа, только если в данный момент ему сопоставлено указанное значение (необязательная операция).
default void replaceAll(BiFunction<? super K, ? super V, ? extends V> function)
Заменяет значение каждой записи результатом вызова заданной функции для этой записи, пока не будут обработаны все записи или функция не выбросит исключение (необязательная операция).

Методы, объявленные в интерфейсе SequencedMap

firstEntry, lastEntry, pollFirstEntry, pollLastEntry
Модификатор и тип Метод Описание
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, если карта пуста (необязательная операция).

Подробное описание конструкторов

LinkedHashMap

public LinkedHashMap(int initialCapacity, float loadFactor)
Создает пустой экземпляр LinkedHashMap с упорядочением по вставке и указанными начальной емкостью и коэффициентом загрузки.
Примечание API:
Чтобы создать LinkedHashMap с начальной емкостью, достаточной для ожидаемого количества отображений, используйте newLinkedHashMap.
Параметры:
initialCapacity — начальная емкость
loadFactor — коэффициент загрузки
Исключения:
IllegalArgumentException — если начальная емкость отрицательна или коэффициент загрузки неположителен

LinkedHashMap

public LinkedHashMap(int initialCapacity)
Создает пустой экземпляр LinkedHashMap с упорядочением по вставке, указанной начальной емкостью и коэффициентом загрузки по умолчанию (0.75).
Примечание API:
Чтобы создать LinkedHashMap с начальной емкостью, достаточной для ожидаемого количества отображений, используйте newLinkedHashMap.
Параметры:
initialCapacity — начальная емкость
Исключения:
IllegalArgumentException — если начальная емкость отрицательна

LinkedHashMap

public LinkedHashMap()
Создает пустой экземпляр LinkedHashMap с упорядочением по вставке, начальной емкостью по умолчанию (16) и коэффициентом загрузки по умолчанию (0.75).

LinkedHashMap

public LinkedHashMap(Map<? extends K, ? extends V> m)
Создает экземпляр LinkedHashMap с упорядочением по вставке и теми же отображениями, что и в указанной карте. Экземпляр LinkedHashMap создается с коэффициентом загрузки по умолчанию (0.75) и начальной емкостью, достаточной для размещения отображений указанной карты.
Параметры:
m — карта, отображения которой следует поместить в эту карту
Исключения:
NullPointerException — если указанная карта равна null

LinkedHashMap

public LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)
Создает пустой экземпляр LinkedHashMap с указанными начальной емкостью, коэффициентом загрузки и режимом упорядочения.
Параметры:
initialCapacity — начальная емкость
loadFactor — коэффициент загрузки
accessOrder — режим упорядочения: true для порядка доступа, false для порядка вставки
Исключения:
IllegalArgumentException — если начальная емкость отрицательна или коэффициент загрузки неположителен

Подробное описание методов

putFirst

public V putFirst(K k, V v)
Вставляет указанное отображение в карту, если оно еще не присутствует, или заменяет значение отображения, если оно уже присутствует (необязательная операция). После нормального завершения этой операции указанное отображение будет присутствовать в этой карте и станет первым в порядке обхода этой карты.

Если эта карта уже содержит отображение для данного ключа, при необходимости оно перемещается так, чтобы стать первым в порядке обхода.

Определено в:
putFirst в интерфейсе SequencedMap<K,V>
Параметры:
k — ключ
v — значение
Возвращает:
значение, ранее связанное с k, или null, если такого значения не было
Начиная с версии:
21

putLast

public V putLast(K k, V v)
Вставляет указанное отображение в карту, если оно еще не присутствует, или заменяет значение отображения, если оно уже присутствует (необязательная операция). После нормального завершения этой операции указанное отображение будет присутствовать в этой карте и станет последним в порядке обхода этой карты.

Если эта карта уже содержит отображение для данного ключа, при необходимости оно перемещается так, чтобы стать последним в порядке обхода.

Определено в:
putLast в интерфейсе SequencedMap<K,V>
Параметры:
k — ключ
v — значение
Возвращает:
значение, ранее связанное с k, или null, если такого значения не было
Начиная с версии:
21

containsValue

public boolean containsValue(Object value)
Возвращает true, если эта карта связывает один или несколько ключей с указанным значением.
Определено в:
containsValue в интерфейсе Map<K,V>
Переопределяет:
containsValue в классе HashMap<K,V>
Параметры:
value — значение, наличие которого в этой карте требуется проверить
Возвращает:
true, если эта карта связывает один или несколько ключей с указанным значением

get

public V get(Object key)
Возвращает значение, с которым связан указанный ключ, или null, если в этой карте нет отображения для ключа.

Точнее, если эта карта содержит отображение от ключа k к значению v такое, что (key==null ? k==null : key.equals(k)), то этот метод возвращает v; в противном случае он возвращает null. (Такое отображение может быть не более чем одно.)

Возвращаемое значение null не обязательно означает, что в карте нет отображения для ключа; также возможно, что карта явно связывает ключ со значением null. Операцию containsKey можно использовать, чтобы различить эти два случая.

Определено в:
get в интерфейсе Map<K,V>
Переопределяет:
get в классе HashMap<K,V>
Параметры:
key — ключ, значение которого требуется вернуть
Возвращает:
значение, с которым связан указанный ключ, или null, если в этой карте нет отображения для ключа
См. также:
  • HashMap.put(Object, Object)

removeEldestEntry

protected boolean removeEldestEntry(Map.Entry<K,V> eldest)
Возвращает true, если эта карта должна удалить самую старую запись. Этот метод вызывается методами put и putAll после вставки новой записи в карту. Он предоставляет реализующему классу возможность удалять самую старую запись при каждом добавлении новой. Это полезно, если карта представляет собой кэш: таким образом карта может уменьшать расход памяти, удаляя устаревшие записи.

Пример использования: это переопределение позволит карте увеличиться до 100 записей, а затем удалять самую старую запись при каждом добавлении новой, поддерживая постоянное количество записей — 100.

    private static final int MAX_ENTRIES = 100;

    protected boolean removeEldestEntry(Map.Entry eldest) {
       return size() > MAX_ENTRIES;
    }

Обычно этот метод никак не изменяет карту, а позволяет карте изменяться в соответствии с возвращаемым значением. Допускается, чтобы этот метод напрямую изменял карту, но в таком случае он должен вернуть false (указывая, что карта не должна пытаться вносить дополнительные изменения). Результат возврата true после изменения карты внутри этого метода не определен.

Эта реализация просто возвращает false (поэтому эта карта ведет себя как обычная карта — самый старый элемент никогда не удаляется).

Параметры:
eldest — запись, вставленная в карту раньше всех, или, если карта упорядочена по доступу, запись, к которой обращались дольше всего назад. Эта запись будет удалена, если данный метод вернет true. Если до вызова put или putAll, приведшего к вызову этого метода, карта была пуста, это будет только что вставленная запись; иными словами, если карта содержит одну запись, самая старая запись одновременно является и самой новой.
Возвращает:
true, если самую старую запись следует удалить из карты; false, если ее следует сохранить.

keySet

public Set<K> keySet()
Возвращает представление ключей этой карты в виде Set. Порядок обхода ключей в представлении совпадает с порядком обхода отображений этой карты. Множество поддерживается картой, поэтому изменения карты отражаются в множестве, и наоборот. Если карта изменяется во время итерации по множеству (за исключением изменений, выполняемых собственной операцией remove итератора), результаты итерации не определены. Множество поддерживает удаление элементов, которое удаляет соответствующее отображение из карты, с помощью операций Iterator.remove, Set.remove, removeAll, retainAll и clear. Оно не поддерживает операции add или addAll. Его Spliterator, как правило, обеспечивает более высокую производительность при последовательной обработке, но значительно более низкую — при параллельной, чем HashMap.
Определено в:
keySet в интерфейсе Map<K,V>
Переопределяет:
keySet в классе HashMap<K,V>
Возвращает:
представление ключей этой карты в виде множества

sequencedKeySet

public SequencedSet<K> sequencedKeySet()
Возвращает представление SequencedSet для keySet этой карты.

Возвращаемое представление обладает теми же характеристиками, которые указаны для представления, возвращаемого методом keySet.

Определено в:
sequencedKeySet в интерфейсе SequencedMap<K,V>
Возвращает:
представление SequencedSet для keySet этой карты
Начиная с версии:
21

values

public Collection<V> values()
Возвращает представление значений этой карты в виде Collection. Порядок обхода значений в представлении совпадает с порядком обхода записей этой карты. Коллекция поддерживается картой, поэтому изменения карты отражаются в коллекции, и наоборот. Если карта изменяется во время итерации по коллекции (за исключением изменений, выполняемых собственной операцией remove итератора), результаты итерации не определены. Коллекция поддерживает удаление элементов, которое удаляет соответствующее отображение из карты, с помощью операций Iterator.remove, Collection.remove, removeAll, retainAll и clear. Она не поддерживает операции add или addAll. Ее Spliterator, как правило, обеспечивает более высокую производительность при последовательной обработке, но значительно более низкую — при параллельной, чем HashMap.
Определено в:
values в интерфейсе Map<K,V>
Переопределяет:
values в классе HashMap<K,V>
Возвращает:
представление значений этой карты

sequencedValues

public SequencedCollection<V> sequencedValues()
Возвращает представление SequencedCollection для коллекции values этой карты.

Возвращаемое представление обладает теми же характеристиками, которые указаны для представления, возвращаемого методом values.

Определено в:
sequencedValues в интерфейсе SequencedMap<K,V>
Возвращает:
представление SequencedCollection для коллекции values этой карты
Начиная с версии:
21

entrySet

public Set<Map.Entry<K,V>> entrySet()
Возвращает представление отображений этой карты в виде Set. Порядок обхода представления совпадает с порядком обхода записей этой карты. Множество поддерживается картой, поэтому изменения карты отражаются в множестве, и наоборот. Если карта изменяется во время итерации по множеству (за исключением изменений, выполняемых собственной операцией remove итератора или операцией setValue над записью карты, возвращенной итератором), результаты итерации не определены. Множество поддерживает удаление элементов, которое удаляет соответствующее отображение из карты, с помощью операций Iterator.remove, Set.remove, removeAll, retainAll и clear. Оно не поддерживает операции add или addAll. Его Spliterator, как правило, обеспечивает более высокую производительность при последовательной обработке, но значительно более низкую — при параллельной, чем HashMap.
Определено в:
entrySet в интерфейсе Map<K,V>
Переопределяет:
entrySet в классе HashMap<K,V>
Возвращает:
представление отображений этой карты в виде множества

sequencedEntrySet

public SequencedSet<Map.Entry<K,V>> sequencedEntrySet()
Возвращает представление SequencedSet для entrySet этой карты.

Возвращаемое представление обладает теми же характеристиками, которые указаны для представления, возвращаемого методом entrySet.

Определено в:
sequencedEntrySet в интерфейсе SequencedMap<K,V>
Возвращает:
представление SequencedSet для entrySet этой карты
Начиная с версии:
21

newLinkedHashMap

public static <K,V> LinkedHashMap<K,V> newLinkedHashMap(int numMappings)
Создает новую пустую LinkedHashMap с упорядочением по вставке, подходящую для ожидаемого количества отображений. Возвращаемая карта использует коэффициент загрузки по умолчанию 0.75, а ее начальная емкость обычно достаточна, чтобы добавить ожидаемое количество отображений без изменения размера карты.
Параметры типа:
K — тип ключей, хранящихся в новой карте
V — тип отображаемых значений
Параметры:
numMappings — ожидаемое количество отображений
Возвращает:
созданную карту
Исключения:
IllegalArgumentException — если numMappings отрицательно
Начиная с версии:
19

reversed

public SequencedMap<K,V> reversed()
Возвращает представление этой карты с обратным порядком. Порядок обхода отображений в возвращаемом представлении обратен порядку обхода отображений в этой карте. Обратный порядок влияет на все операции, учитывающие порядок, включая операции над коллекциями-представлениями возвращаемого представления. Если реализация допускает изменение этого представления, изменения «передаются» базовой карте. В зависимости от реализации изменения базовой карты могут быть видны в этом представлении с обратным порядком, а могут и не быть.

Изменения представления с обратным порядком и его представлений карты разрешены и будут передаваться этой карте. Кроме того, изменения этой карты будут видны в представлении с обратным порядком и его представлениях карты.

Определено в:
reversed в интерфейсе SequencedMap<K,V>
Возвращает:
представление этой карты с обратным порядком
Начиная с версии:
21

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, способы обхода проблем и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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