Интерфейс 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
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static <K extends Comparable<? super K>, V> |
comparingByKey() |
Возвращает компаратор, который сравнивает Map.Entry в естественном порядке по ключу. |
static <K, |
comparingByKey |
Возвращает компаратор, который сравнивает Map.Entry по ключу, используя заданный Comparator. |
static <K, V extends Comparable<? super V>> |
comparingByValue() |
Возвращает компаратор, который сравнивает Map.Entry в естественном порядке по значению. |
static <K, |
comparingByValue |
Возвращает компаратор, который сравнивает Map.Entry по значению, используя заданный Comparator. |
static <K, |
copyOf |
Возвращает копию заданного Map.Entry. |
boolean |
equals |
Сравнивает указанный объект с этим элементом на равенство. |
K |
getKey() |
Возвращает ключ, соответствующий этому элементу. |
V |
getValue() |
Возвращает значение, соответствующее этому элементу. |
int |
hashCode() |
Возвращает значение хэш-кода для этого элемента карты. |
V |
setValue |
Заменяет значение, соответствующее этому элементу, указанным значением (необязательная операция). |
Подробное описание методов
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.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.comparingByKey
static <K extends Comparable<? super K>, V> Comparator<Map.Entry<K,V>> comparingByKey()
Map.Entry в естественном порядке по ключу. Возвращаемый компаратор сериализуем и выбрасывает NullPointerException при сравнении элемента с ключом null.
- Параметры типа:
K- тип ключей, реализующихComparableV- тип значений отображения- Возвращает:
- компаратор, сравнивающий
Map.Entryв естественном порядке по ключу. - С момента:
- 1.8
- См. также:
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
- См. также:
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