A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package it.cast; import java.util.ArrayList;import java.util.Collection;import java.util.Iterator; public class CollectionTterator {                public static void main(String[] args) {                //创建集合对象                Collection collection = new ArrayList();                //创建学生对象                TestStudet testStudet1 = new TestStudet("张三", 23);                TestStudet testStudet2 = new TestStudet("李四", 24);                TestStudet testStudet3 = new TestStudet("王五", 25);                TestStudet testStudet4 = new TestStudet("赵六", 26);                //把学生对象放入集合当中                collection.add(testStudet1);                collection.add(testStudet2);                collection.add(testStudet3);                collection.add(testStudet4);                //遍历集合对象                //以前是创建对象数组,然后遍历数字得到结果                //现在利用Iterator遍历,格式如下                Iterator iterator = collection.iterator();                //判断有没有 元素                while (iterator.hasNext()) {                        //不要多次使用next方法,那样会使输出返回异常                        TestStudet testStudet =(TestStudet)iterator.next();                        System.out.println(testStudet.getNameString()+"---"+testStudet.getAge());                }        } }迭代器代码构成原理public interface Inteator {        boolean hasNext();           3.这个接口里有这样的两个方法        Object next(); } public interface Iterable {    Iterator iterator();   2.里面有个方法返回Iterator类型的方法} public interface Collection extends Iterable {      1. APi中有个父接口Iterable        在这里 Collection并没有对父类的方法进行实现,所以找他的子类看实现的方法} public interface List extends Collection {        Iterator iterator();    子类List也没有改写这个方法,但有继承关系,继续找子类的方法实现} public class ArrayList implements List {在LIst的子类ArrayLIst找到了方法的重写        public Iterator iterator() {        return new Itr();//返回一个对象,可以肯定Itr肯定是这个接口的实现类    }    //可以看到有一个内部类被Private修饰,只能自己看到    private class Itr implements Iterator {            public boolean hasNext() {}//同时在内部类中看到了这个接口的各种重写方法                public Object next(){}     }}  Collection c = new ArrayList();c.add("hello");c.add("world");c.add("java");Iterator it = c.iterator();         //new Itr();while(it.hasNext()) {        String s = (String)it.next();        System.out.println(s);}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马