我试图在某个索引处停止迭代器。
例如,我从ABCDEF开始,如果我输入迭代器(3),我只希望它返回ABC而不是其余的。 以下是我的尝试。
if(stop>this.size() ){
throw new IndexOutOfBoundsException();
}
Iterator<E> iterator = iterator();
int i = 0 ;
while (iterator.hasNext()) {
if(i<stop){
iterator.next();
i++;
}
else{
break;
}
}
答案 0 :(得分:1)
您可以使用for
循环执行以下代码:
if(stop>this.size() ){
throw new IndexOutOfBoundsException();
}
Iterator<E> iterator = iterator();
int i = 0 ;
for (int j = 0; j <3 ; j++) {
if(iterator.hasNext()){
//do what you want here loop itrate only three times
}else {
i=j;
break;
}
}
答案 1 :(得分:0)
这是我的方法。因为我认为操作建议停止是循环的结束。
if(stop>this.size() ){
throw new IndexOutOfBoundsException();
}
else
{
Iterator<E> iterator = iterator();
for (int j = 0; j <stop ; j++) {
if(iterator.hasNext()){
// Todo
}else {
break;
}
}
}