Интерфейс 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:
- Точное поведение экземпляров Entry, полученных из представления множества элементов карты, отличное от итерации, варьируется в разных реализациях карты; некоторые из них связаны с базовой картой, а некоторые — нет. Чтобы гарантировать, что Entry отключен от своей базовой карты, используйте метод
copyOf. Например, следующее создает моментальный снимок элементов карты, который гарантированно не изменится, даже если исходная карта будет изменена:var entries = map.entrySet().stream().map(Map.Entry::copyOf).toList() - С:
- 1.2
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static <K extends Comparable<? super K>, |
comparingByKey() |
Возвращает компаратор, который сравнивает Map.Entry в естественном порядке по ключу. |
static <K, |
comparingByKey |
Возвращает компаратор, который сравнивает Map.Entry по ключу с использованием данного Comparator. |
static <K, |
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.- Overrides:
-
equalsв классеObject - Parameters:
-
o- объект, подлежащий сравнению на равенство с этим элементом карты - Returns:
-
true, если указанный объект равен этому элементу карты - See Also:
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.- Overrides:
-
hashCodeв классеObject - Returns:
- значение хэш-кода для этого элемента карты
- See Also:
comparingByKey
static <K extends Comparable<? super K>, V> Comparator<Map.Entry<K,V>> comparingByKey()
Map.Entry в естественном порядке по ключу. Возвращаемый компаратор сериализуем и выбрасывает NullPointerException при сравнении записи с нулевым ключом.
- Type Parameters:
-
K- тип ключей карты, реализующийComparable -
V- тип значений карты - Returns:
- компаратор, который сравнивает
Map.Entryв естественном порядке по ключу. - Since:
- 1.8
- See Also:
comparingByValue
static <K, V extends Comparable<? super V>> Comparator<Map.Entry<K,V>> comparingByValue()
Map.Entry в естественном порядке по значению. Возвращаемый компаратор сериализуем и выбрасывает NullPointerException при сравнении записи со значением null.
- Type Parameters:
-
K- тип ключей карты -
V- тип значений карты, реализующийComparable - Returns:
- компаратор, который сравнивает
Map.Entryв естественном порядке по значению. - Since:
- 1.8
- See Also:
comparingByKey
static <K, V> Comparator<Map.Entry<K,V>> comparingByKey(Comparator<? super K> cmp)
Map.Entry по ключу с использованием данного Comparator. Возвращаемый компаратор сериализуем, если указанный компаратор также сериализуем.
- Type Parameters:
-
K- тип ключей карты -
V- тип значений карты - Parameters:
-
cmp- компаратор ключей - Returns:
- компаратор, который сравнивает
Map.Entryпо ключу. - Since:
- 1.8
comparingByValue
static <K, V> Comparator<Map.Entry<K,V>> comparingByValue(Comparator<? super V> cmp)
Map.Entry по значению с использованием данного Comparator. Возвращаемый компаратор сериализуем, если указанный компаратор также сериализуем.
- Type Parameters:
-
K- тип ключей карты -
V- тип значений карты - Parameters:
-
cmp- компаратор значений - Returns:
- компаратор, который сравнивает
Map.Entryпо значению. - Since:
- 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, 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/Map.Entry.html