黑马程序员技术交流社区
标题:
Iterator 遍历集合 可以删除元素,yes or no?
[打印本页]
作者:
suiabing
时间:
2012-5-2 23:22
标题:
Iterator 遍历集合 可以删除元素,yes or no?
本帖最后由 隋丙跃 于 2012-5-3 00:54 编辑
public static void method_1()
{
Collection s = new HashSet();
s.add("zhangsan");
s.add("mike");
s.add("lili");
Iterator it = s.iterator();
while()
{
String str = (String)it.next();
System.out.println(str);
if(s.equals(lili))
{
s.remove(str);//异常
// s.remove("lili");//正常
}
}
}
迭代器问题,我直接删除str就发生异常,但是删除丽丽 lili就可以啊 木事的!迭代的时候到底能不能操作集合元素呢?
while 忘了打了(it.hasNext())
作者:
金肖
时间:
2012-5-2 23:47
在迭代时,只能使用迭代器中的方法操作集合中的元素,不可以通过该集合对象的方法操作,
Iterator中,只能对元素进行判断,取出和删除操作,如果要对元素进行修改,就需要其子接
口,ListIterator来完成。
作者:
何阳
时间:
2012-5-2 23:58
public static void method_1()
{
Collection s = new HashSet();
s.add("zhangsan");
s.add("mike");
s.add("lili");
Iterator it = s.iterator();
while()
{
String str = (String)it.next();
System.out.println(str);
//你那集合去和一个字符串对象比地址值,你是怎么认为的...
//这个条件会永远的成立,即if永远会运行,你在一个while循环中操作的
//一个元素还没结束,你就想删除他,你说迭代器纠结不....
//Iterator接口有三个方法,next() hasNext() remove(),肯定有删除
if(s.equals(lili))
{
s.remove(str);//异常
// s.remove("lili");//正常
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2