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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡焱老师 中级黑马   /  2014-3-26 17:35  /  1116 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

mport java.util.Iterator;
import java.util.List;
import java.util.ListIterator;


class CollectionDemo
{
        public static void sop(Object obj)
        {
                System.out.println(obj);
        }
        /**
         * @param args
         */
        /*public static void text () {
                // TODO Auto-generated method stub
                ArrayList al=new ArrayList();
                //添加元素
                al.add("java01");
                al.add("java02");
                al.add("java03");
                al.add("java05");
                //打印原元素
                sop(al);
                //在指令位置添加元素
                //al.add(1,"java09");
                //sop(al);
                //移除指定位置的element
                //al.remove(2);
                //al.remove("java01");//移除指令单例element
                //al.removeAll(al);//移除所有袁术
                //修改某个角标的element、
                //al.set(1,"java11");
                //通过角标获取元素
               
                //sop(al.get(0));
                //获取所有元素
                for(int x=0;x<al.size();x++)
                {
                        //sop(x+":"+al.get(x));
                }
                //迭代器 Iterator
                //Iterator it=al.iterator();//这里的集合方法 返回的是接口 接口怎么能直接用啊???接口不是要实现后才能用吗???
                //while(it.hasNext())
                //{
                        //sop(it.next());
        //        }
                //通过indexOf获取对象的位置角标。返回的是int值
                //sop(al.indexOf("java01"));
                //sop(al.lastIndexOf("java06"));//没有则返回-1
                //subList()返回一个接口(interface) 从角标 1 到角标3的(不包括)元素
                List ls=al.subList(1,3);
                sop(ls);
               

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

5 个回复

倒序浏览
Iterator是java中数据结构的一种, ArrayList也是其中的一种啊,由于 ArrayList是继承于java.util.list的,所以 ArrayList的对象可以调用List的方法,而iterator()就是List的一个方法,调用该方法后返回一个基于 ArrayList中内容的iterator结果集,然后可以根据返回的对象访问各个数据,基本方法为hasNext()和next()(返回Object类型)和Enumeration差不多的。所以可以直接使用,调用里面的方法。

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

回复 使用道具 举报
集合Collection继承了Iterator,集合在调用iterator的时候返回的是Iterator的子类,接口的子类当然可以调用接口的方法。
回复 使用道具 举报
iterator()方法返回一个迭代器,是一个实例,不是一个接口,是一个实现了Iterator的对象
回复 使用道具 举报
昨天刚好复习了一下集合类这块,看了一楼的回复我有点不理解了,我看的是毕向东老师的视频,我是这样理解这个问题的,我认为Iterator是个借口,它的实现类分别在各种集合类里面作为内部类,比如像arraylist,linkedlist,hashset等等,因为他们底层的数据结构不相同,多以他们的迭代方法也就不相同,他们如果要实现迭代就要通过
类的对象.iterator()来获得自己的迭代器,它返回的是接口Iterator的实现类,所以在下面it.hasNext()是可以使用的,这是我的愚见,有什么不对的地方,请指教。
回复 使用道具 举报
它返回的是接口Iterator的实现类 这句话说错了。

应该是它返回的是接口Tterator的实现类对象。父类的引用可以指向子类的对象。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马