iterator
List<String> arguments = …; for (Iterator<String> it = arguments.iterator(); it.hasNext(); )
{ String s = it.next(); if (s.equals("Charlie")) it.remove(); }
//the below, this is wrong:
List<String> arguments = …; for (Iterator<String> it = arguments.iterator(); it.hasNext(); ) { String s = it.next();
if (s.equals("Charlie")) arguments.remove("Charlie"); // runtime error }