Coleções do Commons - Interface do MapIterator

A interface do mapa JDK é bastante difícil de iterar, pois a iteração é feita no EntrySet ou nos objetos KeySet. O MapIterator fornece iteração simples sobre o Map. O exemplo a seguir ilustra o mesmo.

Exemplo de interface MapIterator

MapIteratorTester.java

import org.apache.commons.collections4.IterableMap;
import org.apache.commons.collections4.MapIterator;
import org.apache.commons.collections4.map.HashedMap;

public class MapIteratorTester {
   public static void main(String[] args) {
      IterableMap<String, String> map = new HashedMap<>();

      map.put("1", "One");
      map.put("2", "Two");
      map.put("3", "Three");
      map.put("4", "Four");
      map.put("5", "Five");

      MapIterator<String, String> iterator = map.mapIterator();
      while (iterator.hasNext()) {
         Object key = iterator.next();
         Object value = iterator.getValue();

         System.out.println("key: " + key);
         System.out.println("Value: " + value);

         iterator.setValue(value + "_");
      }
      
      System.out.println(map);
   }
}

Resultado

Ele imprimirá o seguinte resultado.

key: 3
Value: Three
key: 5
Value: Five
key: 2
Value: Two
key: 4
Value: Four
key: 1
Value: One
{3=Three_, 5=Five_, 2=Two_, 4=Four_, 1=One_}