List<Club> lc = new ArrayList<Club>();
Iterator<Club> i = lc.iterator();
Club c = null;
while(i.hasNext() ) {
c = i.next(); //第二次循环到这里就出错
if(!c.isIslive)
lc.remove(c);
}
}
前后代码先省了,有需要的话再说!
解决方案 »
- java中的陷阱,看看你掉进去了么!
- sql语句where子句小常识,欢迎大家讨论
- JTable用AbstractTableModel怎样添加、删除数据
- java可以利用USB口输出信息吗
- java中向方法传值时,传对象引用和传基本变量之间的差异是什么?
- 关于Comparator接口的疑问
- 请问这个错是甚莫意思
- 请问applet和application之间有什么不同呢?
- 关于树(jtree)的DefaultMutableTreeNode的getUserObject的问题
- I want to study jave very much,How to begin?
- 我正在写一个购物管理系统,遇到类与类之间的调用的问题,请高手指教,谢谢
- java的学习
public class Testiter { public static void main(String[] args) {
List<Club> l = new LinkedList<Club>() ;
l.add(new Club());
l.add(new Club());
l.add(new Club());
l.add(new Club());
Iterator<Club> i = l.iterator();
Club c =null;
while(i.hasNext()){
c = i.next();
l.remove(c);
}
}}class Club {
}
就看看这个代码吧,为什么不行啊!
Iterator迭代时不要修改该迭代器所指向的 collection
public class Testiter { public static void main(String[] args) {
List<Club> l = new LinkedList<Club>() ;
l.add(new Club());
l.add(new Club());
l.add(new Club());
l.add(new Club());
Iterator<Club> i = l.iterator();
Club c =null;
while(i.hasNext()){
c = i.next();
i.remove();
}
}}class Club {
}
这样写是不行的。
改为:i.remove();
就好了。
谢谢大家。
while(it.hasNext()) {
it.next();
it.remove();
}
具体为什么一直看得不是很懂
好像是涉及线程安全方面的问题吧