集合框架-集合的嵌套遍历(多层嵌套)

d:多层嵌套


package cn.itcast_06;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;

/*
 * 为了更符合要求:
 *         这次的数据就看成是学生对象。
 * 
 * 传智
 *         bj    北京校区
 *             jc    基础班
 *                     林青霞        27
 *                     风清扬        30
 *             jy    就业班    
 *                     赵雅芝        28
 *                     武鑫        29
 *         sh    上海校区
 *             jc    基础班
 *                     郭美美        20
 *                     犀利哥        22
 *             jy    就业班    
 *                     罗玉凤        21
 *                     马征        23
 *         gz    广州校区
 *             jc    基础班
 *                     王力宏        30
 *                     李静磊        32
 *             jy    就业班    
 *                     郎朗        31
 *                     柳岩        33
 *         xa    西安校区
 *             jc    基础班
 *                     范冰冰        27
 *                     刘意        30
 *             jy    就业班    
 *                     李冰冰        28
 *                     张志豪        29
 */
public class HashMapDemo {
    public static void main(String[] args) {
        // 创建大集合
        HashMap<String, HashMap<String, ArrayList<Student>>> hm = new HashMap<String, HashMap<String, ArrayList<Student>>>();

        // 北京校区数据
        HashMap<String, ArrayList<Student>> hm1 = new HashMap<String, ArrayList<Student>>();
                ArrayList<Student> array1 = new ArrayList<Student>();
                Student s1 = new Student("林青霞", 27);
                Student s2 = new Student("风清扬", 30);
                array1.add(s1);
                array1.add(s2);
                ArrayList<Student> array2 = new ArrayList<Student>();
                Student s3 = new Student("赵雅芝", 28);
                Student s4 = new Student("武鑫", 29);
                array2.add(s3);
                array2.add(s4);
            hm1.put("基础班", array1);
            hm1.put("就业班", array2);
        hm.put("北京校区", hm1);

        // 晚上可以自己练习一下
        // 上海校区数据自己做
        // 广州校区数据自己做

        // 西安校区数据
        HashMap<String, ArrayList<Student>> hm2 = new HashMap<String, ArrayList<Student>>();
                ArrayList<Student> array3 = new ArrayList<Student>();
                Student s5 = new Student("范冰冰", 27);
                Student s6 = new Student("刘意", 30);
                array3.add(s5);
                array3.add(s6);
                ArrayList<Student> array4 = new ArrayList<Student>();
                Student s7 = new Student("李冰冰", 28);
                Student s8 = new Student("张志豪", 29);
                array4.add(s7);
                array4.add(s8);
            hm2.put("基础班", array3);
            hm2.put("就业班", array4);
        hm.put("西安校区", hm2);

        // 遍历集合
        Set<String> keyset1 = hm.keySet();
        for (String key1 : keyset1) {
            System.out.println(key1);
            HashMap<String, ArrayList<Student>> keyvalue1 = hm.get(key1);
            Set<String> keyset2 = keyvalue1.keySet();
            for (String key2 : keyset2) {
                System.out.println("\t" + key2);
                ArrayList<Student> keyvalue2 = keyvalue1.get(key2);
                for (Student s : keyvalue2) {
                    System.out.println("\t\t" + s.getName() + "---"+ s.getAge());
                }
            }
        }
    }
}


package cn.itcast_06;

public class Student {
	private String name;
	private int age;

	public Student() {
		super();
	}

	public Student(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

}

ZHOU_VIP:


package cn.itcast.mybatis.pojo;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;

public class hello {

	public static void main(String[] args) {

		HashMap<String, HashMap<String, ArrayList<Student>>> hm = new HashMap<String, HashMap<String, ArrayList<Student>>>();
		
		HashMap<String, ArrayList<Student>> hm1 = new HashMap<String, ArrayList<Student>>();
		ArrayList<Student> array1 = new ArrayList<Student>();
		Student s1 = new Student("刘备", 27);
		Student s2 = new Student("关羽", 30);
		array1.add(s1);
		array1.add(s2);
		ArrayList<Student> array2 = new ArrayList<Student>();
		Student s3 = new Student("曹操", 28);
		Student s4 = new Student("典韦", 30);
		array2.add(s3);
		array2.add(s4);
		hm1.put("汉", array1);
		hm1.put("魏", array2);
		hm.put("三国", hm1);

		HashMap<String, ArrayList<Student>> hm2 = new HashMap<String, ArrayList<Student>>();
		ArrayList<Student> array3 = new ArrayList<Student>();
		Student s5 = new Student("唐僧", 27);
		Student s6 = new Student("孙悟空", 30);
		array1.add(s5);
		array1.add(s6);
		ArrayList<Student> array4 = new ArrayList<Student>();
		Student s7 = new Student("白骨精", 28);
		Student s8 = new Student("蜘蛛精", 30);
		array2.add(s7);
		array2.add(s8);
		hm2.put("师徒", array3);
		hm2.put("妖怪", array4);
		hm.put("西游", hm2);
		
		//得到键的集合:三国 西游
		Set<String> keyset = hm.keySet();
		for (String key : keyset) {
			//得到键值对对象
			HashMap<String, ArrayList<Student>> keyvalue = hm.get(key);
			//得到键的集合:魏 蜀 师徒 妖怪
			Set<String> keyset2 = keyvalue.keySet();
			for (String key2 : keyset2) {
				//得到对象的集合
				ArrayList<Student> al = keyvalue.get(key2);
				for (Student s : al) {
					System.out.println(s.getName()+"---"+s.getAge());
				}
			}
		}

	}

}



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZHOU_VIP

您的鼓励将是我创作最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值