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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 章闽 中级黑马   /  2012-10-19 17:04  /  1088 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

List<UpImage> list = upfileDao.getAllImage();
List<UpImage> list1 = new ArrayList<UpImage>();
Iterator<UpImage> it = list.iterator();
while(it.hasNext()){
  if(it.next().getSavepath2()==null||it.next().getSavepath2()==""){
   list1.add(it.next());
  }
}
list.removeAll(list1);
ActionContext.getContext().put("list", list);
java.util.NoSuchElementException
java.util.AbstractList$Itr.next(AbstractList.java:350)
应该是说不能用 list1.add(it.next())的it.next;
那应该怎么写法才对?

评分

参与人数 1技术分 +1 收起 理由
杨志 + 1

查看全部评分

1 个回复

倒序浏览
别的部分不看,就这个部分就有很严重的问题

while(it.hasNext()){
  if(it.next().getSavepath2()==null||it.next().getSavepath2()==""){
   list1.add(it.next());
  }
}

你这等于向前移动了三次~~
一般的处理办法是用临时变量接受 t.next()

while(it.hasNext()){
   XXX temp = (XXX)t.next();
  if(temp .getSavepath2()==null||temp .getSavepath2()==""){
   list1.add(itemp );
  }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马