# Class AbstractMap.SimpleEntry<K,V>

java.lang.Object
com.macrofocus.utils.AbstractMap.SimpleEntry<K,V>

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. 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 inherited from class Object

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

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