黑马程序员技术交流社区

标题: Iterater的问题 [打印本页]

作者: 章闽    时间: 2012-10-19 17:04
标题: Iterater的问题
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;
那应该怎么写法才对?
作者: 黄小贝    时间: 2012-10-19 17:12
别的部分不看,就这个部分就有很严重的问题

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 );
  }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2