以上这个错误出现在以下代码中:
while(e.hasNext()){
e.next();
Cat p = e.next();
System.out.println(p.toString());
}
在这里,此处迭代器e中的Cat对象只有3个,iterator.next()语句出现了两次,即执行了两次,故进行两次next()时,在第三次取对象直接越界可以改为:
while(e.hasNext()){
Cat p = e.next();
System.out.println(p.toString());
}
所以要记得的小细节是,只要是.next()出现了,都是执行了一次,取了一次对象。