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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 鲤鱼仙 中级黑马   /  2015-7-4 00:23  /  1372 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天学习了集合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();

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

6 个回复

倒序浏览
这个原理有点像二维数组 也就是说 要遍历的话涉及到for循环的嵌套 建议复习毕老师day04二维数组这一视频 可以给你灵感 外圈是遍历xxx 内圈是遍历yy
回复 使用道具 举报
/*
需求:
实现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);
        }
}
这是我的代码 看看你漏了多少地方
回复 使用道具 举报
谢谢啊  我这个也写出来了 我想问的是 子集合的泛型不一样的时候的遍历  可能我没说清楚
回复 使用道具 举报
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);
                        }
                }
        }

}
回复 使用道具 举报
长知识了
回复 使用道具 举报
fmi110 高级黑马 2015-9-21 21:30:31
7#
鲤鱼仙 发表于 2015-7-5 20:58
谢谢啊  我这个也写出来了 我想问的是 子集合的泛型不一样的时候的遍历  可能我没说清楚  ...

泛型不一致  就去掉泛型 就是不加<>,
是不是hen粗暴{:3_53:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马