赞
踩
内部的方法: hasNext()和next()
package com.jh; import org.junit.Test; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; public class IteratorTest { @Test public void test1(){ Collection coll = new ArrayList(); coll.add(123); coll.add(456); coll.add(new Person("Jerry",20)); 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());//写多了报异常 //方式二:不推荐 // for (int i = 0;i < coll.size();i++){ // System.out.println(iterator.next()); // } //方式三:推荐 //hasNext()∶判断是否还有下一个元素 while(iterator.hasNext()){ System.out.println(iterator.next()); } } }
结果
迭代器执行原理:
显而易见,iterator对象相当于一个指针,指向第一个元素的上方空白位置。hasNext()判断下一个位置是否有元素,有则返回true,next()则是先将指针下移一位并返回所指的元素。
注:
iterator只是用于遍历,不是容器,因此调用iterator并不是生成一个与原来coll相同的结构
package com.jh;
import org.junit.Test;
import java.util.ArrayList;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。