Package java.util

## Class AbstractMap.SimpleImmutableEntry<K,​V>

- java.lang.Object
- - java.util.AbstractMap.SimpleImmutableEntry<K,​V>

- Type Parameters:
    `K` - the type of the keys
    `V` - the type of the values
  All Implemented Interfaces:
    `Serializable`, `Map.Entry<K,​V>`
  Enclosing class:
    AbstractMap<K,​V>

      public static class AbstractMap.SimpleImmutableEntry<K,​V>
      extends Object
      implements Map.Entry<K,​V>, Serializable

  An Entry maintaining an immutable key and value. This class does not support method `setValue`. This class may be convenient in methods that return thread-safe snapshots of key-value mappings.
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SimpleImmutableEntry​(Map.Entry<? extends K,​? extends V> entry)` | Creates an entry representing the same mapping as the specified entry.
    `SimpleImmutableEntry​(K key, V value)` | Creates an entry representing a mapping from the specified key to the specified value.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `equals​(Object o)` | Compares the specified object with this entry for equality.
    `K` | `getKey()` | Returns the key corresponding to this entry.
    `V` | `getValue()` | Returns the value corresponding to this entry.
    `int` | `hashCode()` | Returns the hash code value for this map entry.
    `V` | `setValue​(V value)` | Replaces the value corresponding to this entry with the specified value (optional operation).
    `String` | `toString()` | Returns a String representation of this map entry.

    - ### Methods inherited from class java.lang.Object

      `clone, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### SimpleImmutableEntry

          public SimpleImmutableEntry​(Map.Entry<? extends K,​? extends V> entry)

      Creates an entry representing the same mapping as the specified entry.
      Parameters:
        `entry` - the entry to copy

    - #### SimpleImmutableEntry

          public SimpleImmutableEntry​(K key,
                                      V value)

      Creates an entry representing a mapping from the specified key to the specified value.
      Parameters:
        `key` - the key represented by this entry
        `value` - the value represented by this entry

  - ### Method Detail

    - #### equals

          public boolean equals​(@Nullable
                                Object o)

      Compares the specified object with this entry for equality. Returns `true` if the given object is also a map entry and the two entries represent the same mapping. More formally, two entries `e1` and `e2` 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 the `equals` method works properly across different implementations of the `Map.Entry` interface.
      Specified by:
        `equals` in interface `Map.Entry<K,​V>`
      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()`

    - #### getKey

          public K getKey()

      Returns the key corresponding to this entry.
      Specified by:
        `getKey` in interface `Map.Entry<K,​V>`
      Returns:
        the key corresponding to this entry

    - #### getValue

          public V getValue()

      Returns the value corresponding to this entry.
      Specified by:
        `getValue` in interface `Map.Entry<K,​V>`
      Returns:
        the value corresponding to this entry

    - #### hashCode

          public int hashCode()

      Returns the hash code value for this map entry. The hash code of a map entry `e` is defined to be:

           (e.getKey() == null ? 0 : e.getKey().hashCode()) ˆ (e.getValue() == null ? 0 : e.getValue().hashCode())

      This ensures that `e1.equals(e2)` implies that `e1.hashCode()==e2.hashCode()` for any two Entries `e1` and `e2`, as required by the general contract of `Object.hashCode()`.
      Specified by:
        `hashCode` in interface `Map.Entry<K,​V>`
      Overrides:
        `hashCode` in class `Object`
      Returns:
        the hash code value for this map entry
      See Also:
        `equals(java.lang.Object)`

    - #### setValue

          @Nullable
          public V setValue​(V value)

      Replaces the value corresponding to this entry with the specified value (optional operation). This implementation simply throws `UnsupportedOperationException`, as this class implements an immutable map entry.
      Specified by:
        `setValue` in interface `Map.Entry<K,​V>`
      Parameters:
        `value` - new value to be stored in this entry
      Returns:
        (Does not return)
      Throws:
        `UnsupportedOperationException` - always

    - #### toString

          public String toString()

      Returns a String representation of this map entry. This implementation returns the string representation of this entry's key followed by the equals character ("`=`") followed by the string representation of this entry's value.
      Overrides:
        `toString` in class `Object`
      Returns:
        a String representation of this map entry