//这是源代码
public boolean hasNext() {
return cursor != size();//指针不等于size,返回布尔值 ,注意:指针没有向下移动}
public E next() {
checkForComodification();
try {
E next = get(cursor);//先取值
lastRet = cursor++;//指针后加1
return next;//返回内容
} catch (IndexOutOfBoundsException e) {
checkForComodification();
throw new NoSuchElementException();
}
}
意思就是说,hasNext()只判断集合还有没有下一个元素,如果有,则返回true,没有则为false,它的指针没有向下移动。
而next()先取值,然后指针向下移动,
如果你那样写的话,它的指针永远没有向下移动,只会永远返回true,所以就无限循环了
|