Module java.base
Package java.util

# Class AbstractMap.SimpleImmutableEntry<K,​V>

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

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.

Since:
  1.6
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

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 declared in class java.lang.Object

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

## Constructor Details

### 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

### 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

## Method Details

### 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

### setValue

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

### equals

public boolean equals​(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()`

### 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)`

### 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