A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

Collection c = new ArrayList();
c.add("hello");
c.add("world");
c.add("java");
ListIterator lit =c.listIterator();
for(int i = 0;i<c.size();i++){
if("world".equals(lit[i])){
   c.set("world");
}
System.out.println("a");
}
内存溢出的问题,不知道错在哪了,可能代码不是很正确,但是意思是这个意思。希望大神能解决

3 个回复

倒序浏览
你在用迭代器的时候,使用了集合修改集合,而且lit[i]有问题,代码混乱,使用迭起器就不要使用for循环了,迭代器中next()方法就是来循环遍历的,使用next()前,用hasNext()判断下
回复 使用道具 举报
本帖最后由 showdy 于 2015-4-24 21:19 编辑
  1. <blockquote>              ArrayList c = new ArrayList();
复制代码
回复 使用道具 举报
  1. ArrayList c = new ArrayList();
  2.                 c.add("hello");
  3.                 c.add("world");
  4.                 c.add("java");
  5.                 ListIterator lit =c.listIterator();
  6.                 while(lit.hasNext()){
  7.                     String s=(String)lit.next();
  8.                   if("world".equals(s)){
  9.                      lit.set("Android");
  10.                 }
  11.                 }
  12.                 System.out.println(c);

  13.         }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马