Java基础知识强化之集合框架笔记65:Map集合之集合多层嵌套的数据分析
1.
为了更符合要求:
这次的数据就看成是学生对象。
传智播客
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
2. 代码实现:
(1)Student.java:
1 package cn.itcast_06; 2 3 public class Student { 4 private String name; 5 private int age; 6 7 public Student() { 8 super(); 9 } 10 11 public Student(String name, int age) { 12 super(); 13 this.name = name; 14 this.age = age; 15 } 16 17 public String getName() { 18 return name; 19 } 20 21 public void setName(String name) { 22 this.name = name; 23 } 24 25 public int getAge() { 26 return age; 27 } 28 29 public void setAge(int age) { 30 this.age = age; 31 } 32 33 }
(2)HashMapDemo.java:
1 package cn.itcast_06; 2 3 import java.util.ArrayList; 4 import java.util.HashMap; 5 import java.util.Set; 6 7 /* 8 * 为了更符合要求: 9 * 这次的数据就看成是学生对象。 10 * 11 * 传智播客 12 * bj 北京校区 13 * jc 基础班 14 * 林青霞 27 15 * 风清扬 30 16 * jy 就业班 17 * 赵雅芝 28 18 * 武鑫 29 19 * sh 上海校区 20 * jc 基础班 21 * 郭美美 20 22 * 犀利哥 22 23 * jy 就业班 24 * 罗玉凤 21 25 * 马征 23 26 * gz 广州校区 27 * jc 基础班 28 * 王力宏 30 29 * 李静磊 32 30 * jy 就业班 31 * 郎朗 31 32 * 柳岩 33 33 * xa 西安校区 34 * jc 基础班 35 * 范冰冰 27 36 * 刘意 30 37 * jy 就业班 38 * 李冰冰 28 39 * 张志豪 29 40 */ 41 public class HashMapDemo { 42 public static void main(String[] args) { 43 // 创建大集合 44 HashMap<String, HashMap<String, ArrayList<Student>>> czbkMap = new HashMap<String, HashMap<String, ArrayList<Student>>>(); 45 46 // 北京校区数据 47 HashMap<String, ArrayList<Student>> bjCzbkMap = new HashMap<String, ArrayList<Student>>(); 48 ArrayList<Student> array1 = new ArrayList<Student>(); 49 Student s1 = new Student("林青霞", 27); 50 Student s2 = new Student("风清扬", 30); 51 array1.add(s1); 52 array1.add(s2); 53 ArrayList<Student> array2 = new ArrayList<Student>(); 54 Student s3 = new Student("赵雅芝", 28); 55 Student s4 = new Student("武鑫", 29); 56 array2.add(s3); 57 array2.add(s4); 58 bjCzbkMap.put("基础班", array1); 59 bjCzbkMap.put("就业班", array2); 60 czbkMap.put("北京校区", bjCzbkMap); 61 62 // 晚上可以自己练习一下 63 // 上海校区数据自己做 64 // 广州校区数据自己做 65 66 // 西安校区数据 67 HashMap<String, ArrayList<Student>> xaCzbkMap = new HashMap<String, ArrayList<Student>>(); 68 ArrayList<Student> array3 = new ArrayList<Student>(); 69 Student s5 = new Student("范冰冰", 27); 70 Student s6 = new Student("刘意", 30); 71 array3.add(s5); 72 array3.add(s6); 73 ArrayList<Student> array4 = new ArrayList<Student>(); 74 Student s7 = new Student("李冰冰", 28); 75 Student s8 = new Student("张志豪", 29); 76 array4.add(s7); 77 array4.add(s8); 78 xaCzbkMap.put("基础班", array3); 79 xaCzbkMap.put("就业班", array4); 80 czbkMap.put("西安校区", xaCzbkMap); 81 82 // 遍历集合 83 Set<String> czbkMapSet = czbkMap.keySet(); 84 for (String czbkMapKey : czbkMapSet) { 85 System.out.println(czbkMapKey); 86 HashMap<String, ArrayList<Student>> czbkMapValue = czbkMap 87 .get(czbkMapKey); 88 Set<String> czbkMapValueSet = czbkMapValue.keySet(); 89 for (String czbkMapValueKey : czbkMapValueSet) { 90 System.out.println("\t" + czbkMapValueKey); 91 ArrayList<Student> czbkMapValueValue = czbkMapValue 92 .get(czbkMapValueKey); 93 for (Student s : czbkMapValueValue) { 94 System.out.println("\t\t" + s.getName() + "---" 95 + s.getAge()); 96 } 97 } 98 } 99 } 100 }
运行效果,如下: