Interface Map.Entry<K, V>
- Параметры типа:
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, а указанное значение равно 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 при сравнении элемента с нулевым ключом.
- Параметры типа:
K- тип ключей отображения, реализующийComparableV- тип значений отображения- Возвращает:
- компаратор, сравнивающий
Map.Entryпо ключу в естественном порядке. - С версии:
- 1.8
- См. также:
comparingByValue
static <K, V extends Comparable<? super V>> Comparator<Map.Entry<K,V>> comparingByValue()
Map.Entry по значению в естественном порядке. Возвращенный компаратор сериализуем и вызывает NullPointerException при сравнении элемента с нулевыми значениями.
- Параметры типа:
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- компараторComparatorдля ключей - Возвращает:
- компаратор, сравнивающий
Map.Entryпо ключу. - С версии:
- 1.8
comparingByValue
static <K,V> Comparator<Map.Entry<K,V>> comparingByValue(Comparator<? super V> cmp)
Map.Entry по значению с использованием заданного Comparator. Возвращенный компаратор сериализуем, если заданный компаратор также сериализуем.
- Параметры типа:
K- тип ключей отображенияV- тип значений отображения- Параметры:
-
cmp- компараторComparatorдля значений - Возвращает:
- компаратор, сравнивающий
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:
- Экземпляр, полученный из представления множества элементов отображения, связан с этим отображением. Метод
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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/Map.Entry.html