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