# Class AbstractMap.SimpleEntry<K,V>

java.lang.Object
java.util.AbstractMap.SimpleEntry<K,V>

Type Parameters:
  `K` - the type of key
  `V` - the type of the value

All Implemented Interfaces:
  `Serializable, Map.Entry<K,V>`

Enclosing class:
  `AbstractMap<K,V>`

public static class AbstractMap.SimpleEntry<K,V> extends Object implements Map.Entry<K,V>, Serializable
An Entry maintaining a key and a value. The value may be changed using the `setValue` method. Instances of this class are not associated with any map nor with any map's entry-set view.

API Note:
  This class facilitates the process of building custom map implementations. For example, it may be convenient to return arrays of `SimpleEntry` instances in method `Map.entrySet().toArray`.
Since:
  1.6
See Also:
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`SimpleEntry(Map.Entry<? extends K, ? extends V> entry)`
Creates an entry representing the same mapping as the specified entry.
`SimpleEntry(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.
`String`
`toString()`
Returns a String representation of this map entry.

### Methods declared in class Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`
Modifier and Type
Method
Description
`protected Object`
`clone()`
Creates and returns a copy of this object.
`protected void`
`finalize()`
Deprecated, for removal: This API element is subject to removal in a future version.
Finalization is deprecated and subject to removal in a future release.
`final Class<?>`
`getClass()`
Returns the runtime class of this `Object`.
`final void`
`notify()`
Wakes up a single thread that is waiting on this object's monitor.
`final void`
`notifyAll()`
Wakes up all threads that are waiting on this object's monitor.
`final void`
`wait()`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
`final void`
`wait(long timeoutMillis)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
`final void`
`wait(long timeoutMillis, int nanos)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

## Constructor Details

### SimpleEntry

public SimpleEntry(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

### SimpleEntry

public SimpleEntry(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.

Specified by:
  `setValue` in interface `Map.Entry<K,V>`
Parameters:
  `value` - new value to be stored in this entry
Returns:
  the old value corresponding to the entry

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