Spec-Zone.ru › OpenJDK 21

Интерфейс 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
См. также:
  • 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-значений, а указанное значение равно 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:
  • 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.
Overrides:
hashCode в классе Object
Returns:
значение хэш-кода для этого элемента карты
See Also:
  • Object.hashCode()
  • Object.equals(Object)
  • equals(Object)

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:
  • Comparable

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:
  • Comparable
END_OF_DOCUMENT_MARKER

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

Spec-Zone.ru

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