关于迭代器,老是出错,请高手看看! 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); } }前后代码先省了,有需要的话再说! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.util.*;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 是不是Iterator <Club> i = lc.iterator(); 这?泛型能用于迭代吗?你把<Club>去掉试试,不行当我没说,没用过泛型,呵呵 改好了。import java.util.*;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 { } lc.remove(c);这样写是不行的。改为:i.remove();就好了。谢谢大家。 不能那样remove(),要用Iterator里的那个remove()while(it.hasNext()) { it.next(); it.remove();}具体为什么一直看得不是很懂好像是涉及线程安全方面的问题吧 为什么画不出rectangle? 关于Struts中文件标签问题!!!! 怎样使JFrame一直在程序窗口的最前面 ? 急 "+="的问题 Java SQL语句带参数查询是怎么写的? 请问高手:怎样在JVM中,使用自己的ClassLoader, 如何用jbuilder对程序打包,知道的请告诉我,不胜感激。 一个基本的问题? 我想寻找关于JBuilder4的教程,请问从哪里可以下载呀? 请问高手:如何通过局域网的IP地址获得该IP的用户名? 我正在写一个购物管理系统,遇到类与类之间的调用的问题,请高手指教,谢谢 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();
}
具体为什么一直看得不是很懂
好像是涉及线程安全方面的问题吧