# Class EntrySetMapIterator<K,V>

java.lang.Object
org.apache.commons.collections4.iterators.EntrySetMapIterator<K,V>

Type Parameters:
  `K` - the type of keys
  `V` - the type of mapped values

All Implemented Interfaces:
  `Iterator<K>`, `MapIterator<K,V>`, `ResettableIterator<K>`

public class EntrySetMapIterator<K,V> extends Object implements MapIterator<K,V>, ResettableIterator<K>
Implements a `MapIterator` using a Map entrySet. Reverse iteration is not supported.

     MapIterator it = map.mapIterator();
     while (it.hasNext()) {
       Object key = it.next();
       Object value = it.getValue();
       it.setValue(newValue);
     }

Since:
  3.0

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `EntrySetMapIterator(Map<K,V> map)`
  Constructs a new instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `K`
  `getKey()`
  Gets the current key, which is the key returned by the last call to `next()`.
  `V`
  `getValue()`
  Gets the current value, which is the value associated with the last key returned by `next()`.
  `boolean`
  `hasNext()`
  Checks to see if there are more entries still to be iterated.
  `K`
  `next()`
  Gets the next key from the `Map`.
  `void`
  `remove()`
  Removes the last returned key from the underlying `Map`.
  `void`
  `reset()`
  Resets the state of the iterator.
  `V`
  `setValue(V value)`
  Sets the value associated with the current key.
  `String`
  `toString()`
  Gets the iterator as a String.

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

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

  ### Methods inherited from interface java.util.Iterator

  `forEachRemaining`

- ## Constructor Details

  - ### EntrySetMapIterator

    public EntrySetMapIterator(Map<K,V> map)
    Constructs a new instance.
    Parameters:
      `map` - the map to iterate over

- ## Method Details

  - ### getKey

    public K getKey()
    Gets the current key, which is the key returned by the last call to `next()`.
    Specified by:
      `getKey` in interface `MapIterator<K,V>`
    Returns:
      the current key
    Throws:
      `IllegalStateException` - if `next()` has not yet been called

  - ### getValue

    public V getValue()
    Gets the current value, which is the value associated with the last key returned by `next()`.
    Specified by:
      `getValue` in interface `MapIterator<K,V>`
    Returns:
      the current value
    Throws:
      `IllegalStateException` - if `next()` has not yet been called

  - ### hasNext

    public boolean hasNext()
    Checks to see if there are more entries still to be iterated.
    Specified by:
      `hasNext` in interface `Iterator<K>`
    Specified by:
      `hasNext` in interface `MapIterator<K,V>`
    Returns:
      `true` if the iterator has more elements

  - ### next

    public K next()
    Gets the next key from the `Map`.
    Specified by:
      `next` in interface `Iterator<K>`
    Specified by:
      `next` in interface `MapIterator<K,V>`
    Returns:
      the next key in the iteration
    Throws:
      `NoSuchElementException` - if the iteration is finished

  - ### remove

    public void remove()
    Removes the last returned key from the underlying `Map`.

    This method can be called once per call to `next()`.

    Specified by:
      `remove` in interface `Iterator<K>`
    Specified by:
      `remove` in interface `MapIterator<K,V>`
    Throws:
      `UnsupportedOperationException` - if remove is not supported by the map
      `IllegalStateException` - if `next()` has not yet been called
      `IllegalStateException` - if `remove()` has already been called since the last call to `next()`

  - ### reset

    public void reset()
    Resets the state of the iterator.
    Specified by:
      `reset` in interface `ResettableIterator<K>`

  - ### setValue

    public V setValue(V value)
    Sets the value associated with the current key.
    Specified by:
      `setValue` in interface `MapIterator<K,V>`
    Parameters:
      `value` - the new value
    Returns:
      the previous value
    Throws:
      `UnsupportedOperationException` - if setValue is not supported by the map
      `IllegalStateException` - if `next()` has not yet been called
      `IllegalStateException` - if `remove()` has been called since the last call to `next()`

  - ### toString

    public String toString()
    Gets the iterator as a String.
    Overrides:
      `toString` in class `Object`
    Returns:
      a string version of the iterator