Spec-Zone.ru › OpenJDK 24

Интерфейс Map.Entry<K,V>

Type Parameters:
K - тип ключа
V - тип значения
Все известные реализующие классы:
AbstractMap.SimpleEntry, AbstractMap.SimpleImmutableEntry
Вложенный интерфейс:
Map<K,V>
public static interface Map.Entry<K,V>
Элемент карты (пара ключ-значение). Элемент может быть неизменяемым, или значение может быть изменяемым, если реализован необязательный метод setValue. Элемент может быть независимым от любой карты, или он может представлять элемент из представления набора элементов карты.

Элемент сохраняет подключение к базовой карте, если он был получен путем итерирования представления Map.entrySet() карты, как явно с помощью Iterator, так и неявно через расширенную запись for. Это подключение к базовой карте действует только во время итерирования представления набора элементов. Во время итерирования, если это поддерживается базовой картой, изменение значения элемента через метод setValue будет видно в базовой карте. Поведение такого элемента не определено вне итерации представления набора элементов карты. Также не определено, если базовая карта была модифицирована после того, как элемент был возвращен итератором, за исключением метода setValue. Кроме того, изменение значения отображения в базовой карте может или может не быть видно в соответствующем элементе представления набора элементов.

Элемент также может быть получен из представления набора элементов карты другими способами, например, с помощью методов parallelStream, stream, spliterator, любых перегрузок toArray или путем копирования представления набора элементов в другой коллекцию. Не определено, подключены ли полученные экземпляры элементов к базовой карте, повлияют ли изменения в таком элементе на базовые карты и наоборот, и поддерживает ли такой элемент необязательный метод setValue.

Кроме того, элемент может быть получен непосредственно из карты, например, через вызовы методов непосредственно в интерфейсе NavigableMap. Таким образом полученный элемент, как правило, не связан с картой и представляет собой неизменяемый снимок отображения на момент вызова. Такой элемент также, как правило, не поддерживает метод setValue.

Элемент, полученный путем прямой конструкции классов AbstractMap.SimpleEntry или AbstractMap.SimpleImmutableEntry или из вызова методов Map.entry или Map.Entry.copyOf, не подключен к никакой карте.

Примечание API:
Точное поведение экземпляров элементов, полученных из представления набора элементов карты, отличного от итерации, варьируется в разных реализациях карт; некоторые подключены к базовой карте, а некоторые — нет. Чтобы гарантировать, что элемент отключен от базовой карты, используйте метод copyOf. Например, следующее создает снимок записей карты, который гарантированно не изменится, даже если исходная карта модифицируется:
 
 var entries = map.entrySet().stream().map(Map.Entry::copyOf).toList()
 
С тех пор:
1.2
См. также:
  • Map.entrySet()

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

Модификатор и тип Метод Описание
static <K extends Comparable<? super K>, V>
Comparator<Map.Entry<K,V>>
comparingByKey()
Возвращает компаратор, который сравнивает Map.Entry в естественном порядке по ключу.
static <K,V> Comparator<Map.Entry<K,V>> comparingByKey(Comparator<? super K> cmp)
Возвращает компаратор, который сравнивает Map.Entry по ключу, используя заданный Comparator.
static <K, V extends Comparable<? super V>>
Comparator<Map.Entry<K,V>>
comparingByValue()
Возвращает компаратор, который сравнивает Map.Entry в естественном порядке по значению.
static <K,V> Comparator<Map.Entry<K,V>> comparingByValue(Comparator<? super V> cmp)
Возвращает компаратор, который сравнивает Map.Entry по значению, используя заданный Comparator.
static <K,V> Map.Entry<K,V> copyOf(Map.Entry<? extends K, ? extends V> e)
Возвращает копию заданного Map.Entry.
boolean equals(Object o)
Сравнивает указанный объект с этим элементом на равенство.
K getKey()
Возвращает ключ, соответствующий этому элементу.
V getValue()
Возвращает значение, соответствующее этому элементу.
int hashCode()
Возвращает значение хэш-кода для этого элемента карты.
V setValue(V value)
Заменяет значение, соответствующее этому элементу, указанным значением (необязательная операция).

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

getKey

K getKey()
Возвращает ключ, соответствующий этому элементу.
Возвращает:
ключ, соответствующий этому элементу
Исключение:
IllegalStateException - реализации могут, но не обязаны, бросить это исключение, если запись была удалена из базового отображения.

getValue

V getValue()
Возвращает значение, соответствующее этому элементу. Если отображение было удалено из базового отображения (операцией итератора remove), результаты этого вызова не определены.
Возвращает:
значение, соответствующее этому элементу
Исключение:
IllegalStateException - реализации могут, но не обязаны, бросить это исключение, если запись была удалена из базового отображения.

setValue

V setValue(V value)
Заменяет значение, соответствующее этому элементу, указанным значением (необязательная операция). (Запись в отображение производится непосредственно.) Поведение этого вызова не определено, если отображение уже было удалено из отображения (операцией итератора remove).
Параметры:
value - новое значение, которое будет храниться в этом элементе
Возвращает:
старое значение, соответствующее элементу
Исключение:
UnsupportedOperationException - если операция put не поддерживается базовым отображением
ClassCastException - если класс указанного значения препятствует его хранению в базовом отображении
NullPointerException - если базовая карта не допускает нулевых значений, а указанное значение равно null
IllegalArgumentException - если какая-то характеристика этого значения препятствует его хранению в базовом отображении
IllegalStateException - реализации могут, но не обязаны, бросить это исключение, если запись была удалена из базового отображения.

equals

boolean equals(Object o)
Сравнивает указанный объект с этим элементом на равенство. Возвращает true, если заданный объект также является элементом отображения, и два элемента представляют одно и то же отображение. Более формально, два элемента e1 и e2 представляют одно и то же отображение, если
     (e1.getKey()==null ?
      e2.getKey()==null : e1.getKey().equals(e2.getKey()))  &&
     (e1.getValue()==null ?
      e2.getValue()==null : e1.getValue().equals(e2.getValue()))
 
Это гарантирует, что метод equals работает корректно в разных реализациях интерфейса Map.Entry.
Переопределяет:
equals в классе Object
Параметры:
o - объект, который нужно сравнить на равенство с этим элементом отображения
Возвращает:
true, если указанный объект равен этому элементу отображения
См. также:
  • Object.hashCode()
  • HashMap

hashCode

int hashCode()
Возвращает значение хэш-кода для этого элемента отображения. Хэш-код элемента отображения e определяется как:
     (e.getKey()==null   ? 0 : e.getKey().hashCode()) ^
     (e.getValue()==null ? 0 : e.getValue().hashCode())
 
Это гарантирует, что e1.equals(e2) подразумевает, что e1.hashCode()==e2.hashCode() для любых двух элементов e1 и e2, как требуется общим контрактом Object.hashCode.
Переопределяет:
hashCode в классе Object
Возвращает:
значение хэш-кода для этого элемента отображения
См. также:
  • Object.hashCode()
  • Object.equals(Object)
  • equals(Object)

comparingByKey

static <K extends Comparable<? super K>, V> Comparator<Map.Entry<K,V>> comparingByKey()
Возвращает компаратор, сравнивающий Map.Entry в естественном порядке по ключу.

Возвращаемый компаратор сериализуем и выбрасывает NullPointerException при сравнении элемента с ключом null.

Параметры типа:
K - тип ключей, реализующих Comparable
V - тип значений отображения
Возвращает:
компаратор, сравнивающий Map.Entry в естественном порядке по ключу.
С момента:
1.8
См. также:
  • Comparable

comparingByValue

static <K, V extends Comparable<? super V>> Comparator<Map.Entry<K,V>> comparingByValue()
Возвращает компаратор, сравнивающий Map.Entry в естественном порядке по значению.

Возвращаемый компаратор сериализуем и выбрасывает NullPointerException при сравнении элемента со значением null.

Параметры типа:
K - тип ключей отображения
V - тип значений отображения, реализующий Comparable
Возвращает:
компаратор, сравнивающий Map.Entry в естественном порядке по значению.
С момента:
1.8
См. также:
  • Comparable

comparingByKey

static <K,V> Comparator<Map.Entry<K,V>> comparingByKey(Comparator<? super K> cmp)
Возвращает компаратор, сравнивающий Map.Entry по ключу, используя заданный Comparator.

Возвращаемый компаратор сериализуем, если заданный компаратор также сериализуем.

Параметры типа:
K - тип ключей отображения
V - тип значений отображения
Параметры:
cmp - компаратор ключей
Возвращает:
компаратор, сравнивающий Map.Entry по ключу.
С момента:
1.8

comparingByValue

static <K,V> Comparator<Map.Entry<K,V>> comparingByValue(Comparator<? super V> cmp)
Возвращает компаратор, сравнивающий Map.Entry по значению, используя заданный Comparator.

Возвращаемый компаратор сериализуем, если заданный компаратор также сериализуем.

Параметры типа:
K - тип ключей отображения
V - тип значений отображения
Параметры:
cmp - компаратор значений
Возвращает:
компаратор, сравнивающий Map.Entry по значению.
С момента:
1.8

copyOf

static <K,V> Map.Entry<K,V> copyOf(Map.Entry<? extends K, ? extends V> e)
Возвращает копию заданного Map.Entry. Возвращаемый экземпляр не ассоциирован ни с каким отображением. Возвращаемый экземпляр имеет те же характеристики, что и экземпляры, возвращаемые методом Map::entry.
Примечание API:
Экземпляр, полученный из представления entry-множества отображения, имеет связь с этим отображением. Метод copyOf может использоваться для создания экземпляра Map.Entry, содержащего тот же ключ и значение, что и независимый от любого отображения.
Примечание реализации:
Если заданный элемент был получен из вызова copyOf или Map::entry, вызов copyOf обычно не создает другую копию.
Параметры типа:
K - тип ключа
V - тип значения
Параметры:
e - копируемый элемент
Возвращает:
элемент отображения, равный заданному элементу
Исключение:
NullPointerException - если e равно null или если любой из его ключ или значение равно null
С момента:
17

© 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/Map.Entry.html

Spec-Zone.ru

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