HashMap - Iterator on keySet, values and entrySet is fail-safe or fail-fast?

HashMap - Iterator on keySet, values and  entrySet is  fail-safe or fail-fast?

The iterators returned by the iterator() method of the collections returned by all three Map's “collection view methods" are fail-fast. Means any structural modification made to HashMap like adding or removing elements during Iteration will throw java.util.ConcurrentModificationException.

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
/** Copyright (c), AnkitMittal JavaMadeSoEasy.com */
public class HashMapTest {
public static void main(String args[]){
   Map<Integer,String> hashMap=new HashMap<Integer,String>();
   hashMap.put(11, "ankit");
   hashMap.put(21, "javaMadeSoEasy");
   System.out.println("\n---1. Iterate on keys, by obtaining iterator on keySet---");
   Iterator<Integer> keyIterator=hashMap.keySet().iterator();
          hashMap.put(4,"newEle1");//unComment to avoid ConcurrentModificationException
   System.out.println("\n---2. Iterate on values, by obtaining iterator on values---");
   Iterator<String> valueIterator=hashMap.values().iterator();  
          hashMap.put(4,"newEle1");//unComment to avoid ConcurrentModificationException
   System.out.println("\n---3. Iterate on entry, by obtaining iterator on entrySet---");
   Iterator<Entry<Integer, String>> entryIterator=hashMap.entrySet().iterator();
          hashMap.put(4,"newEle1");//unComment to avoid ConcurrentModificationException


HashMap - Iterate on keys by obtaining keySet, Iterate on values by obtaining values, Iterate on entry by obtaining entrySet

HashMap - synchronizing map using Collections.synchronizedMap

ArrayList - add, add element at specific index methods program

Must read for you :