java我的迭代器程序为什么会出现死循环?

List list = new ArrayList();
list.add("aaa");
list.add("bbb");
Iterator ite = list.iterator();
while(ite.hasNext()){
System.out.println(“------”);
}

当然会出现死循环

原因:

你没有使用next()方法,就是返回下一个元素,所以你 的程序中的游标(迭代器)始终停留在了aaa的前面,而没有跳到下一个位置,因为ite.hasNext()) 只是判断是否有下一个元素,而 String str = (String) ite.next()才是返回下一个元素并将游标(迭代器)移动到下一个元素的位置
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-07-02
加上这句:String s = (String)ite.next();
因为你已经添加了元素所以ite.hasNext()的值一直是true当然是死循环了。本回答被提问者采纳
第2个回答  2009-07-02
ite一直都有next。。。。
你需要移动“next”。。。

具体的 zskzhao 已经说了。我就不抢分了。
第3个回答  2009-07-02
学到了 ,还没注意过这种情况
相似回答