迭代元素的时候用集合的remove()方法不会报错

//为什么删除倒数第二个元素不会报错,删除其他元素会报错
public static void main(String[] args) {
Collection c = new ArrayList();
c.add("one");
c.add("two");
c.add("three");
c.add("four");
c.add("five");
c.add("six");
System.out.println("原先的集合:"+c);
Iterator it = c.iterator();
while (it.hasNext()) {
Object o = it.next();
String str = (String)o;

            if ("five".equals(str)) {//为什么删除倒数第二个元素不会报错,删除其他元素会报错
                System.out.println("要删除的元素:"+str);
                c.remove(str);
            }
        }
        System.out.println("删除后的集合:"+c);

    }

可以把c.remove(str);改成it.remove();
至于错误原因可以参考http://www.cnblogs.com/dolphin0520/p/3933551.html