四十一、集合的巢狀
阿新 • • 發佈:2021-06-29
- 總述:任何集合內部都可以儲存其它任何集合
1、List巢狀List
public class Test{ public static void main(String[] args){ /* 假如有兩個班的學生姓名,它們分別儲存在兩個集合中: */ //第一個班 ArrayList<String> list1 = new ArrayList<>(); list1.add("迪麗熱巴"); list1.add("古力娜扎"); list1.add("柳巖"); list1.add("楊冪"); //第二個班 ArrayList<String> list2 = new ArrayList<>(); list2.add("蔡徐坤"); list2.add("楊坤"); list2.add("陳偉霆"); list2.add("李易峰"); //將兩個集合儲存到一個集合中 ArrayList<ArrayList<String>> allList = new ArrayList<>(); allList.add(list1); allList.add(list2); //遍歷allList,取出每個ArrayList for(ArrayList<String> list : allList){ //遍歷每個班的ArrayList for(String s : list){ System.out.println(s); } } } }
2、List巢狀Map
public class Test{ public static void main(String[] args){ /* 有兩個班的學員,分別儲存在兩個Map中 */ //第一個班: Map<String,String> map1 = new HashMap<>(); map1.put("it001","迪麗熱巴"); map1.put("it002","古力娜扎"); //第二個班: Map<String,String> map2 = new HashMap<>(); map6.put("heima001","蔡徐坤"); map2.put("heima002","李易峰"); //將兩個班的map儲存到一個ArrayList中 ArrayList<Map<String,String>> allList = new ArrayList<>(); allList.add(map1); allList.add(map2); //遍歷allList,取出每個Map for(Map<String,String> map : allList){ //遍歷map Set<String> keys = map.keySet(); for(String key : keys){ System.out.println(key + " - " + map.get(key)); } } } }
3、Map巢狀Map
public class Test{ public static void main(String[] args){ /* 有兩個班,班號分別為:"黑馬188期"和"黑馬189期",兩個班學員的姓名分別儲存在兩個Map中 */ //"黑馬188期": Map<String,String> map1 = new HashMap<>(); map1.put("it001","迪麗熱巴"); map1.put("it002","古力娜扎"); //"黑馬189期": Map<String,String> map2 = new HashMap<>(); map2.put("heima001","蔡徐坤"); map2.put("heima002","李易峰"); //將兩個班的Map連同對應的"班號"一同儲存在一個Map中 Map<String,Map<String,String>> allMap = new HashMap<>(); allMap.put("黑馬188期",map1); allMap.put("黑馬189期",map2); //遍歷allMap Set<String> keys = allMap.keySet(); for(String k : keys){ System.out.println(k + ":"); //取出對應的map Map<String,String> map = allMap.get(k); //遍歷map Set<String> keys2 = map.keySet(); for(String k2 : keys2){ System.out.println(k2 + " = " + map.get(k2)); } } } }