再帰メソッドでイテレータを使用しようとしています。リストに次の要素が残っていない場合は、メソッドを終了する必要があります。iterator.hasNext()
しかし、カーソルが最後の位置にある場合は、 returnを使用してチェックします。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);
}
}