import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
public class TestIteratorError {
public static void main(String[] args){
Collection books= new HashSet();
books.add("dafad");
books.add("adfadfw");
books.add("wefrqsdf");
Iterator it =books.iterator();
while(it.hasNext()){
String book= (String)it.next();
System.out.println(book);
if(book.equals("adfadfw")){
books.remove(book);//使用iterator迭代的过程中,不可修改集合元素,这是会引发异常的。
}
}
}
}
代码如上所示,
当我执行这段程序时,并没有报错,这是怎么回事,
但是我把字符串替换成第一个和第三个元素就会报错。
下面是我在问答专栏采纳的正确答案,
因为在你对一个hashset遍历的时候是不能对集合进行remove操作的 hashset会对放进来的对象进行排序,然后添加进集合,你的adfadfw按照unicode编码来说正好排在集合的最后面,就是已经编历完了所以不会出错,而前面的两个都没遍历玩就会出错,你换成1 2 3试一试 就可以知道为什么会出错了
分享到:
相关推荐
是关于iterator的函数,以及它们的作用!
struts2 中标签的使用 这段时间学习用struts2来开发网站,其中对一些struts2的标签在实际操作上有一些体会。 一.关于iterator迭代集合对象的问题:
Boost Iterator_adaptor
本资源模拟java ArrayList Iterator的实现方式,其实也是为了介绍一下Iterator的设计模式。
图解设计Iterator 源代码
介绍C++中Iterator的用法,很实用
java中Iterator迭代器讲解,基础数据对象。
该文档是演示迭代器Iterator的使用方法和源代码,其中包括了Iterator的继承类的讲解和再Iterator中的两种方法
struts2 标签iterator使用我自己试过的
一个运用Extjs,Struts2, json,iterator技术构建的iterator_jsonDemo2。iterator_jsonDemo1的链接:http://download.csdn.net/detail/cafebar123/8816409 运用了Extjs,Struts2, json,iterator技术, 将数据从...
vector容器与iterator迭代器,有两者的区别和联系,供大家学习理解
C++使用iterator的例子
逆序reverse_iterator打印 /* 编写一段程序,用普通迭代器顺序打印一个vector,再用逆序reverse_iterator打印一个它 */
程序人生java Iterator接口的知识总结,在做项目的时候碰到很多像这样的问题,于是在比较全面的查找资料下,总结了这份资料,不好勿喷!
Java源码分析:深入探讨Iterator模式
"for、foreach、iterator的用法和区别" 在 Java 编程语言中,for、foreach 和 iterator 是三种常用的遍历数组和集合的方法。它们之间有相似之处,但也存在着许多不同之处。 相同点:三者都可以用来遍历数组和集合...
java-util-iterator.pdfjava-util-iterator.pdfjava-util-iterator.pdf
struts2中iterator 标签的使用详解
JAVA中的Iterator的用法 详细讲解用法
Collection、Map、List、Set、Iterator