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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 樱花飘过 中级黑马   /  2015-8-15 23:26  /  329 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

需求是:将集合里面的内容,转换成数组,并遍历,我不理解的是为什么这样写运行的结果是对的,按照迭代器的理解,结果应该是没循环一次,数组的元素都是一样 的,应该是实现不了的,很希望大神帮忙看下,因为,我怀疑是我对迭代器的理解有偏差
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;

public class Demo8 {

        public static void main(String[] args) {
                Collection c = new ArrayList<>();
                c.add("拉登");
                c.add("巴马");
                c.add("加菲");
                c.add("达姆");
                Iterator iterator = c.iterator();
                String[] arr = new String[c.size()];
                while (iterator.hasNext()) {
                        for (int i = 0; i < arr.length; i++) {
                                arr[i] = (String) iterator.next();
                                System.out.println(arr[i]);
                        }
                }
                System.out.println(Arrays.toString(arr));
        }
}

2 个回复

倒序浏览
首先:看到你在创建集合的时候,在ArrayList后面加了个尖括号,不知道你是否学了泛型了?我不算大神,不过我用迭代器是这么用的

       public static void main(String[] args) {                ArrayList alist = new ArrayList();
                alist.add("拉登");
                alist.add("巴马");
                alist.add("加菲");
                alist.add("达姆");
                Iterator it = alist.iterator();
                while (it.hasNext()) {
                        String str = (String) it.next();
                        System.out.println(str);
                }
        }



回复 使用道具 举报
T-l-H、小生 发表于 2015-8-16 00:37
首先:看到你在创建集合的时候,在ArrayList后面加了个尖括号,不知道你是否学了泛型了?我不算大神,不过 ...

暂时美欧学泛型,你说的只是遍历容器,这个我也会的,我只想知道我的需求为什么这么写也可以实现,正常情况,按照迭代器 思想是实现不了的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马