我正在尝试在递归方法中使用迭代器。如果列表中没有下一个元素,它应该退出该方法。但是如果光标位于最后一个位置,则iterator.hasNext()
返回检查true
,我除外false
?
有什么想法和提示吗?
我不会张贴图片,所以我会写下来。这就是我在 Eclipse-Debugger-View 中看到的:
iterator | AbstractList$Itr (id=448)
- cursor | 2
- excpectedModCount | 2
- lastRet | 1
- this$0 | ArrayList<E> (id=438)
- elemtData | Object[10] (id=462)
---modCount | 2
---size | 2
这是代码
static void resolveWithIterator(List<SomethingContext> list, Iterator<ContextResolveHelper> iterator, List<ContextResolveHelper> resolverList)
{
boolean end = resolverList.iterator().hasNext();
if (list.size() == 1 || !end){
resolvedList.add(list);
return;
}else{
ContextResolveHelper acutalEntry = iterator.next();
List<SomethingContext> tempQRes2 = new ArrayList<SomethingContext>();
for (SomethingContext smtCtx : list){
if (//check various things){
tempQRes2.add(smtCtx);
}
}
resolveWithIterator(tempQRes2, iterator, resolverList);
}
}