本帖最后由 kerner 于 2014-11-25 23:31 编辑
你这样写是,取得集合的迭代器后,在对迭代器进行操作时,不能再的集合进行增删,因为会影响迭代器的判断,迭代器有两个索引与集合相关,分别指向当前和末尾,具体怎么影响可以看源代码。不过你可以这样写:
Iterator it = list.iterator();
while (list.iterator().hasNext) {
String s = (String) list.iterator().next();
if ("hello".equals(s)) {
list.add("word");//好像是这一步引起的,是为什么呢
}
}
System.out.println("list:" + list);
这样不会影响,但是是一直循环的,
改正:上面的方法不行,我又犯了不该犯的错误。 |