#Collection中 的Iterator迭代器接口
在这里插入代码片
public class IneratorTest {
/*
*Collection中 的Iterator迭代器接口
* */
@Test
public void test1() {
Collection coll = new ArrayList();
coll.add(123);
coll.add(33);
coll.add(new Preson("zs", 34).toString());
coll.add(new String("Tom"));
coll.add(false);
//方法一:
Iterator iterator = coll.iterator();
/* System.out.println(iterator.next());
System.out.println(iterator.next());
System.out.println(iterator.next());
System.out.println(iterator.next());
System.out.println(iterator.next());
//报异常java.util.NoSuchElementException没有这样的元素
System.out.println(iterator.next());*/
//方法二:
for (int i = 0; i < coll.size(); i++) {
System.out.println(iterator.next());
}
//方法三:
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
}
底部实现原理
1.hasNext()判断是否还有下一个元素
2 .next()指针下移,同时将下一以后的元素返回。
注意易错点
1.如图
会出现那种错误呢
1.跳这输出
2.没有这样的元素,java.util.
代码运行结果如下
错误类型二:
每当我们调一个迭代器的方法,都会产生一个新Interator方法,新的话指针就会在开头
每次都只执行这两个部分
最后结果就是死循环输出第一个元素
总结