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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class ListDemo
{
        public static void main(String[] args)
        {
                list_1();
        }

        //ListIterator的简单应用
        public static void list_1()
        {
                ArrayList s = new ArrayList();
                s.add("java01");
                s.add("java02");
                s.add("java03");
                ListIterator li = s.listIterator(); //为什么要把它放在循环外才可以在循环内从头往后遍历元素????
                //使用List特有的迭代器ListIterator
                for(; li.hasNext(); )
                {
                        Object obj = li.next(); //子类对象指向父类引用
                        if(obj.equals("java03"))
                        {
                                li.set("java---3"); //对迭代器中的元素进行修改
                                li.add("java-----3"); //对迭代器中的元素进行添加
                        }
                }
                p("从头往后遍历:" + s);

                for(; li.hasPrevious(); )
                {
                        p(li.previous());
                }
                p("从后往头遍历: " + s);
               
        }

        public static void p(Object obj)
        {
                System.out.println(obj);
        }
}

3 个回复

倒序浏览
因为迭代器的规则,如果放入循环,代表你每一个循环都新建一个迭代器,永远都是从一个集合的元素开始迭代。
回复 使用道具 举报
放在循环里面也行的,这样:

                for(ListIterator li = s.listIterator(); ; li.hasNext(); )
                {………}
因为for循环中的的第一个位置,只是用来定义并初始化一个变量,以供后面用到,所以定义在外面和里面,没有区别的
回复 使用道具 举报
谢谢大家伙的帮忙。问题解决了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马