What will be the output of the program?
import java.util.*;
public class Sketch11
{
public static void main(String[] args)
{
List<String> l = new ArrayList<String>(
Arrays.asList("a", "b", "c"));
for (String s : l)
{
if (s.equals("b")) l.remove(s);
}
System.out.println(l);
}
}
Answer: C
Structurally modifying a list while a for-each iterator is walking it invalidates that iterator, and the next call to next() throws ConcurrentModificationException. The removal itself succeeds first, but the loop cannot continue. Iterator.remove is the supported way to do this.
Please log in or register to report this question.