在索引处停止迭代器

时间:2017-04-07 16:04:51

标签: java iterator

我试图在某个索引处停止迭代器。

例如,我从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;
    }
}

2 个答案:

答案 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;
     }
  }
}