集合框架-集合的巢狀遍歷(多層巢狀)

ZHOU_VIP發表於2017-05-01

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());
				}
			}
		}

	}

}



相關文章