黑马程序员技术交流社区

标题: 集合嵌套集合的遍历 [打印本页]

作者: 鲤鱼仙    时间: 2015-7-4 00:23
标题: 集合嵌套集合的遍历
今天学习了集合Collection
  然后老师给了我们一道题目
集合的嵌套
   ArrayList<ArrayList>  XXX  = new ArrayList<ArrayList>();
   ArrayList<String>  YY1  = new ArrayList<String>();
   ArrayList<String>  YY2  = new ArrayList<String>();
   ArrayList<String>  YY3  = new ArrayList<String>();

   YY1.add()  YY2.add()  YY3.add()

   XXX.add(YY1)  XXX.add(YY2)  XXX.add(YY3)

   集合迭代操作 -- 嵌套循环
     XXX.iterator()
       ArrayList AA = next();

这个自己写到遍历就写不动了 谁能帮我说下循环的地方该怎么来
如果  子集合的泛型不同的话该怎么办?

作者: 慕容旺财    时间: 2015-7-5 13:46
这个原理有点像二维数组 也就是说 要遍历的话涉及到for循环的嵌套 建议复习毕老师day04二维数组这一视频 可以给你灵感 外圈是遍历xxx 内圈是遍历yy
作者: 慕容旺财    时间: 2015-7-5 13:48
/*
需求:
实现ArrayList的嵌套以及遍历

*/

import java.util.*;

class ArrayListq1
{
        public static void main(String[] args)
        {
                ArrayList<ArrayList<String>>  xxx  = new ArrayList<ArrayList<String>>();
                ArrayList<String>  yy1  = new ArrayList<String>();
                ArrayList<String>  yy2  = new ArrayList<String>();
                ArrayList<String>  yy3  = new ArrayList<String>();

                xxx.add(yy1);
                xxx.add(yy2);
                xxx.add(yy3);

                yy1.add("java01");
                yy2.add("java02");
                yy3.add("java03");

                Iterator<ArrayList<String>> itx = xxx.iterator();

                while (itx.hasNext())
                {
                        ArrayList<String> yy = itx.next();
                        Iterator<String> ity = yy.iterator();
                        while (ity.hasNext())
                        {
                                String s = ity.next();
                                sop(s);
                        }
                }
        }

        public static void sop(Object obj)
        {
                System.out.println(obj);
        }
}
这是我的代码 看看你漏了多少地方
作者: 鲤鱼仙    时间: 2015-7-5 20:58
谢谢啊  我这个也写出来了 我想问的是 子集合的泛型不一样的时候的遍历  可能我没说清楚
作者: 发抖的_DtYJA    时间: 2015-7-5 22:06
import java.util.ArrayList;
import java.util.Iterator;

public class ArrayListTest {
        public static void main(String[] args) {
                ArrayList<ArrayList<String>> array =new ArrayList<ArrayList<String>>();
                ArrayList<String> al1 = new ArrayList<String>();
                ArrayList<String> al2 = new ArrayList<String>();
                ArrayList<String> al3 = new ArrayList<String>();
                al1.add("abc1");
                al2.add("abc2");
               
                al2.add("bbc1");
                al2.add("bbc2");
               
                al3.add("cbc1");
                al3.add("cbc2");
                array.add(al1);
                array.add(al2);
                array.add(al3);
                Iterator<ArrayList<String>> it =array.iterator();
                while(it.hasNext()){
                        ArrayList<String> arrayList = it.next();
                        Iterator<String> it1 =arrayList.iterator();
                        while(it1.hasNext()){
                                String s = it1.next();
                                System.out.println(s);
                        }
                }
        }

}

作者: hejin67410    时间: 2015-9-21 20:44
长知识了
作者: fmi110    时间: 2015-9-21 21:30
鲤鱼仙 发表于 2015-7-5 20:58
谢谢啊  我这个也写出来了 我想问的是 子集合的泛型不一样的时候的遍历  可能我没说清楚  ...

泛型不一致  就去掉泛型 就是不加<>,
是不是hen粗暴{:3_53:}




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