Module java.base
Package java.util

Interface Map.Entry<K,V>

All Known Implementing Classes:
AbstractMap.SimpleEntry,AbstractMap.SimpleImmutableEntry
Enclosing interface:
Map<K,V>

public static interfaceMap.Entry<K,V>
A map entry (key-value pair). The Entry may be unmodifiable, or the value may be modifiable if the optionalsetValue method is implemented. The Entry may be independent of any map, or it may represent an entry of the entry-set view of a map.

Instances of theMap.Entry interface may be obtained by iterating the entry-set view of a map. These instances maintain a connection to the original, backing map. This connection to the backing map is validonly for the duration of iteration over the entry-set view. During iteration of the entry-set view, if supported by the backing map, a change to aMap.Entry's value via thesetValue method will be visible in the backing map. The behavior of such aMap.Entry instance is undefined outside of iteration of the map's entry-set view. It is also undefined if the backing map has been modified after theMap.Entry was returned by the iterator, except through theMap.Entry.setValue method. In particular, a change to the value of a mapping in the backing map might or might not be visible in the correspondingMap.Entry element of the entry-set view.

API Note:
It is possible to create aMap.Entry instance that is disconnected from a backing map by using thecopyOf method. For example, the following creates a snapshot of a map's entries that is guaranteed not to change even if the original map is modified:
 var entries = map.entrySet().stream().map(Map.Entry::copyOf).toList()
Since:
1.2
See Also:
  • Method Details

    • getKey

      K getKey()
      Returns the key corresponding to this entry.
      Returns:
      the key corresponding to this entry
      Throws:
      IllegalStateException - implementations may, but are not required to, throw this exception if the entry has been removed from the backing map.
    • getValue

      V getValue()
      Returns the value corresponding to this entry. If the mapping has been removed from the backing map (by the iterator'sremove operation), the results of this call are undefined.
      Returns:
      the value corresponding to this entry
      Throws:
      IllegalStateException - implementations may, but are not required to, throw this exception if the entry has been removed from the backing map.
    • setValue

      V setValue(V value)
      Replaces the value corresponding to this entry with the specified value (optional operation). (Writes through to the map.) The behavior of this call is undefined if the mapping has already been removed from the map (by the iterator'sremove operation).
      Parameters:
      value - new value to be stored in this entry
      Returns:
      old value corresponding to the entry
      Throws:
      UnsupportedOperationException - if theput operation is not supported by the backing map
      ClassCastException - if the class of the specified value prevents it from being stored in the backing map
      NullPointerException - if the backing map does not permit null values, and the specified value is null
      IllegalArgumentException - if some property of this value prevents it from being stored in the backing map
      IllegalStateException - implementations may, but are not required to, throw this exception if the entry has been removed from the backing map.
    • equals

      boolean equals(Object o)
      Compares the specified object with this entry for equality. Returnstrue if the given object is also a map entry and the two entries represent the same mapping. More formally, two entriese1 ande2 represent the same mapping if
           (e1.getKey()==null ?      e2.getKey()==null : e1.getKey().equals(e2.getKey()))  &&     (e1.getValue()==null ?      e2.getValue()==null : e1.getValue().equals(e2.getValue()))
      This ensures that theequals method works properly across different implementations of theMap.Entry interface.
      Overrides:
      equals in class Object
      Parameters:
      o - object to be compared for equality with this map entry
      Returns:
      true if the specified object is equal to this map entry
      See Also:
    • hashCode

      int hashCode()
      Returns the hash code value for this map entry. The hash code of a map entrye is defined to be:
           (e.getKey()==null   ? 0 : e.getKey().hashCode()) ^     (e.getValue()==null ? 0 : e.getValue().hashCode())
      This ensures thate1.equals(e2) implies thate1.hashCode()==e2.hashCode() for any two Entriese1 ande2, as required by the general contract ofObject.hashCode.
      Overrides:
      hashCode in class Object
      Returns:
      the hash code value for this map entry
      See Also:
    • comparingByKey

      static <K extendsComparable<? super K>,V>Comparator<Map.Entry<K,V>> comparingByKey()
      Returns a comparator that comparesMap.Entry in natural order on key.

      The returned comparator is serializable and throwsNullPointerException when comparing an entry with a null key.

      Type Parameters:
      K - theComparable type of then map keys
      V - the type of the map values
      Returns:
      a comparator that comparesMap.Entry in natural order on key.
      Since:
      1.8
      See Also:
    • comparingByValue

      static <K,V extendsComparable<? super V>>Comparator<Map.Entry<K,V>> comparingByValue()
      Returns a comparator that comparesMap.Entry in natural order on value.

      The returned comparator is serializable and throwsNullPointerException when comparing an entry with null values.

      Type Parameters:
      K - the type of the map keys
      V - theComparable type of the map values
      Returns:
      a comparator that comparesMap.Entry in natural order on value.
      Since:
      1.8
      See Also:
    • comparingByKey

      static <K,V> Comparator<Map.Entry<K,V>> comparingByKey(Comparator<? super K> cmp)
      Returns a comparator that comparesMap.Entry by key using the givenComparator.

      The returned comparator is serializable if the specified comparator is also serializable.

      Type Parameters:
      K - the type of the map keys
      V - the type of the map values
      Parameters:
      cmp - the keyComparator
      Returns:
      a comparator that comparesMap.Entry by the key.
      Since:
      1.8
    • comparingByValue

      static <K,V> Comparator<Map.Entry<K,V>> comparingByValue(Comparator<? super V> cmp)
      Returns a comparator that comparesMap.Entry by value using the givenComparator.

      The returned comparator is serializable if the specified comparator is also serializable.

      Type Parameters:
      K - the type of the map keys
      V - the type of the map values
      Parameters:
      cmp - the valueComparator
      Returns:
      a comparator that comparesMap.Entry by the value.
      Since:
      1.8
    • copyOf

      static <K,V> Map.Entry<K,V> copyOf(Map.Entry<? extends K,? extends V> e)
      Returns a copy of the givenMap.Entry. The returned instance is not associated with any map. The returned instance has the same characteristics as instances returned by theMap::entry method.
      API Note:
      An instance obtained from a map's entry-set view has a connection to that map. ThecopyOf method may be used to create aMap.Entry instance, containing the same key and value, that is independent of any map.
      Implementation Note:
      If the given entry was obtained from a call tocopyOf orMap::entry, callingcopyOf will generally not create another copy.
      Type Parameters:
      K - the type of the key
      V - the type of the value
      Parameters:
      e - the entry to be copied
      Returns:
      a map entry equal to the given entry
      Throws:
      NullPointerException - if e is null or if either of its key or value is null
      Since:
      17