1. 程式人生 > 其它 >ArrayList和HashMap相互巢狀遍歷

ArrayList和HashMap相互巢狀遍歷

HashMap巢狀ArrayList

package com.bigdat.java.day22;
import java.util.*;
/*
        HashMap巢狀ArrayList
 */
public class HashMapAndArrayList {
    public static void main(String[] args) {
        //建立 HashMap 班級集合
        HashMap<ArrayList<Student1>, String> asMap = new HashMap<>();
        //建立 ArrayList集合
        ArrayList<Student1> pt = new ArrayList<Student1>();
        ArrayList<Student1> jy = new ArrayList<Student1>();
        ArrayList<Student1> hh = new ArrayList<Student1>();
        //建立普通班學生
        Student1 s1 = new Student1("普通一",21);
        Student1 s2 = new Student1("普通二",22);
        Student1 s3 = new Student1("普通三",23);
        //建立精英班學生
        Student1 s4 = new Student1("精英四",24);
        Student1 s5 = new Student1("精英五",25);
        //建立豪華班學生
        Student1 s6 = new Student1("豪華六",26);
        //新增普通學生
        pt.add(s1);
        pt.add(s2);
        pt.add(s3);
        //新增精英學生
        jy.add(s4);
        jy.add(s5);
        //新增豪華學生
        hh.add(s6);
        //新增班級到集合中
        asMap.put(pt, "普通班");
        asMap.put(jy, "精英班");
        asMap.put(hh, "豪華班");
        //開始遍歷大的班級集合
        //建立 鍵值對 的物件
        Set<Map.Entry<ArrayList<Student1>, String>> entries = asMap.entrySet();
        //建立 鍵值對 迭代器
        Iterator<Map.Entry<ArrayList<Student1>, String>> iterator = entries.iterator();
        while (iterator.hasNext()) {
            Map.Entry<ArrayList<Student1>, String> next = iterator.next();
            ArrayList<Student1> key = next.getKey();
            String value = next.getValue();
            //建立學生的迭代器
            Iterator<Student1> iterator1 = key.iterator();
            while(iterator1.hasNext()){
                Student1 next1 = iterator1.next();
                String name = next1.getName();
                int age = next1.getAge();
                System.out.println("班級:"+value+",姓名:"+name+",年齡:"+age);
            }
        }
    }
}

ArrayList中巢狀HashMap

package com.bigdat.java.day22;
import java.util.*;
/*
    ArrayList中巢狀HashMap
 */
public class ArrayListAndHashMap {
    public static void main(String[] args) {
        //建立大的班級集合
        ArrayList<HashMap<Student1,String>> list = new ArrayList<>();
        //建立各班級集合
        HashMap<Student1, String> pt = new HashMap<>();
        HashMap<Student1, String> jy = new HashMap<>();
        HashMap<Student1, String> hh = new HashMap<>();
        //建立普通班學生
        Student1 s1 = new Student1("普通一",21);
        Student1 s2 = new Student1("普通二",22);
        Student1 s3 = new Student1("普通三",23);
        //建立精英班學生
        Student1 s4 = new Student1("精英四",24);
        Student1 s5 = new Student1("精英五",25);
        //建立豪華班學生
        Student1 s6 = new Student1("豪華六",26);
        //學生新增入班級
        pt.put(s1, "普通班");
        pt.put(s2, "普通班");
        pt.put(s3, "普通班");

        jy.put(s4, "精英班");
        jy.put(s5, "精英班");

        hh.put(s6, "豪華班");
        //將班級遠元素加入
        list.add(pt);
        list.add(jy);
        list.add(hh);

        //開始遍歷
        for (HashMap<Student1, String> student1StringHashMap : list) {
            Set<Map.Entry<Student1, String>> entries = student1StringHashMap.entrySet();
            for (Map.Entry<Student1, String> entry : entries) {
                Student1 key = entry.getKey();
                String value = entry.getValue();
                String name = key.getName();
                int age = key.getAge();
                System.out.println("班級:"+value+",姓名:"+name+",年齡:"+age);
            }
        }
        }

}