fork download
  1.  
  2. import java.util.Iterator;
  3. import java.util.List;
  4. import java.util.Map;
  5. import java.util.concurrent.ConcurrentHashMap;
  6. import java.util.concurrent.CopyOnWriteArrayList;
  7.  
  8. class ThreadSafeIteratorExample {
  9.  
  10. public static void main(String[] args) {
  11.  
  12. List<String> myList = new CopyOnWriteArrayList<String>();
  13.  
  14. myList.add("1");
  15. myList.add("2");
  16. myList.add("3");
  17. myList.add("4");
  18. myList.add("5");
  19.  
  20. Iterator<String> it = myList.iterator();
  21. while(it.hasNext()){
  22. String value = it.next();
  23. System.out.println("List Value:"+value);
  24. if(value.equals("3")){
  25. myList.remove("4");
  26. myList.add("6");
  27. myList.add("7");
  28. }
  29. }
  30. System.out.println("List Size:"+myList.size());
  31.  
  32. Map<String,String> myMap = new ConcurrentHashMap<String,String>();
  33. myMap.put("1", "1");
  34. myMap.put("2", "2");
  35. myMap.put("3", "3");
  36.  
  37. Iterator<String> it1 = myMap.keySet().iterator();
  38. while(it1.hasNext()){
  39. String key = it1.next();
  40. System.out.println("Map Value:"+myMap.get(key));
  41. if(key.equals("1")){
  42. myMap.remove("3");
  43. myMap.put("4", "4");
  44. myMap.put("5", "5");
  45. }
  46. }
  47.  
  48. System.out.println("Map Size:"+myMap.size());
  49. }
  50.  
  51. }
Success #stdin #stdout 0.04s 4386816KB
stdin
Standard input is empty
stdout
List Value:1
List Value:2
List Value:3
List Value:4
List Value:5
List Size:6
Map Value:1
Map Value:2
Map Value:4
Map Value:5
Map Size:4