一般用Iterator iterator = historicTaskInstanceInfoList.iterator();再进行迭代的话 无法使用这个类的方法, 只能使用迭代器里面的方法貌似... 这个iterator能不能像下面这样用呢? 谢谢了各位
[code=Java]
List <HistoricTaskInstanceInfo> unAssignedTaskList = new ArrayList <HistoricTaskInstanceInfo> ();
while(historicTaskInstanceInfoList.iterator().hasNext()){
if(historicTaskInstanceInfoList.iterator().next().getAssignee().equals(null)){
unAssignedTaskList.add(historicTaskInstanceInfoList.iterator().next());
}
}
[/code]
------解决方案--------------------------------------------------------
不可以,这样你每次都是一个新的iterator,如果有一个元素的话,while就死循环了
------解决方案--------------------------------------------------------
- Java code
public Iterator<E> iterator() { return new Itr(); }
------解决方案--------------------------------------------------------
List <HistoricTaskInstanceInfo> unAssignedTaskList = new ArrayList <HistoricTaskInstanceInfo> ();
while(historicTaskInstanceInfoList.iterator().hasNext()){
if(historicTaskInstanceInfoList.iterator().next().getAssignee().equals(null)) {
unAssignedTaskList.add(historicTaskInstanceInfoList.iterator().next()); //这里不能出现两遍iterator.next(),不然会出错!!!!
}
}
------解决方案--------------------------------------------------------
- Java code
for(Iterator<T> itr = list.iterator(); itr.hasNext();){ T t = itr.next();}
------解决方案--------------------------------------------------------
一楼+1
每次循环都会得到一个iterator,就死循环了