//一.定义一个Map集合,key和value不规定类型,任意放入数据,用keySet()和entrySet()两种方式遍历出Map集合的数据
//二.定义一个Map集合,key和value不规定类型,任意放入数据,单独拿到所有的value的数据
//三.Map集合3层嵌套使用(2Map+1List)
//List<Student> lst = new ArrayList<>();
//Map<String, List<Student>> map = new TreeMap<>();
Map<String, Map<String,List<Student>>> map1 = new HashMap<>();
// 每一个部
Map<String, List<Student>> m1 = new HashMap<>();// 初中部
Map<String, List<Student>> m2 = new HashMap<>();// 高中部
Map<String, List<Student>> m3 = new HashMap<>();// 大学部
// 初中部
List<Student> lst1 = new ArrayList<>();
lst1.add(new Student("张晓东", 90f));
lst1.add(new Student("张晓西", 75f));
List<Student> lst2 = new ArrayList<>();
lst2.add(new Student("张晓北", 80f));
lst2.add(new Student("张晓南", 82f));
m1.put("T110", lst1);
m1.put("T272", lst2);
map1.put("初中部", m1);
// 高中部
List<Student> lst3 = new ArrayList<>();
lst3.add(new Student("张三", 90f));
lst3.add(new Student("李四", 100f));
List<Student> lst4 = new ArrayList<>();
lst4.add(new Student("王五", 70f));
lst4.add(new Student("小六", 100f));
List<Student> lst5 = new ArrayList<>();
lst5.add(new Student("小八 ", 70f));
lst5.add(new Student("小九", 100f));
m2.put("T206", lst3);
m2.put("T222", lst4);
m2.put("T272", lst5);
map1.put("高中部", m2);
// 大学部
List<Student> lst6 = new ArrayList<>();
lst6.add(new Student("可乐", 60f));
lst6.add(new Student("雪碧", 50f));
List<Student> lst7 = new ArrayList<>();
lst7.add(new Student("哇哈哈", 90f));
lst7.add(new Student("老干妈", 80f));
m3.put("T230", lst6);
m3.put("T231", lst7);
map1.put("大学部", m3);
Set<String> ks = map1.keySet();
for (String str : ks) {
Map<String, List<Student>> mp = map1.get(str);
Set<Entry<String, List<Student>>> sy = mp.entrySet();
for (Entry<String, List<Student>> sr : sy) {
String key = sr.getKey();
List<Student> val = sr.getValue();
Iterator<Student> it5 = val.iterator();
while (it5.hasNext()) {
System.out.println(it5.next() + "," + key + "," + str);
}
}
}