日期:2014-05-20  浏览次数:20817 次

迭代器输出加了句system.out.println(it.next())报越界错误
原码如下
package iteratorTest;

import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;

public class IteratorTest {
public static void main(String[] args){
Collection c=new HashSet();
c.add("11");
c.add("22");
c.add("33");
Iterator it = c.iterator();
while (it.hasNext()) {
//为什么加上这句出现越界错误
//System.out.println(it.next());
String book=(String) it.next();
System.out.println(book);
if (book.equals("11")) {
it.remove();
}
}
System.out.println(c);
}
}

------解决方案--------------------
next(),  是返回当前元素, 并指向下一个元素。
hasNext(), 则是判断仍有元素可以迭代,并指向下一个元素。


所以越界了