黑马程序员技术交流社区

标题: 关于集合中迭代器的问题 [打印本页]

作者: 伍淑江    时间: 2013-3-18 23:56
标题: 关于集合中迭代器的问题
本帖最后由 伍淑江 于 2013-3-19 20:45 编辑
  1. array2并不是对象呀,它为什么能调研Iterator方法的呢?
复制代码
public class ArrayListTest {
        public static void main(String[] args) {
                ArrayList array = new ArrayList();
                array.add("hello");
                array.add("world");
                array.add("java");
                array.add("hello");
                ArrayList array2 = getSingleton(array);
                Iterator it = array2.iterator();   //这里的array2为什么可以调用iterator( )呀?
                while (it.hasNext()) {
                        String s = (String) it.next();
                        System.out.println(s);
                }
        }
        public static ArrayList getSingleton(ArrayList array) {
                ArrayList arr = new ArrayList();
                Iterator it = array.iterator();      
                while (it.hasNext()) {
                        String s = (String) it.next();
                        if (!arr.contains(s)) {
                                arr.add(s);
                        }
                }
                return arr;
        }
}

作者: 飞天小猪猪    时间: 2013-3-19 00:18
ArrayList array2 = getSingleton(array);
Iterator it = array2.iterator();  
...
public static ArrayList getSingleton(ArrayList array)

因为方法getSingleton(ArrayList array)返回的是一个ArrayList对象,所以定义了一个ArrayList类型的Array2去接收它,Array2就是一个ArrayList类型的对象了,因此可以调用iterator方法。
作者: 李阳    时间: 2013-3-19 00:34
   ArrayList array2 = getSingleton(array);
在这里你调用了自定义的方法getSingleton方法,这个方法是获取一个ArrayList集合。
所以array2能够调用集合的方法。
作者: 范德农    时间: 2013-3-19 03:23
Array2是ArrayList类,超级接口是Iterator,自然能有iterator( )方法,无论如何,这都是Collection的子类,自然都能调用该方法。

作者: 小路飞    时间: 2013-3-19 07:47
你可以查查API文档,一切自然迎刃而解!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2