- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Set;
- /*
- * ArrayList嵌套HashMap:
- *
- * 将0118班存到一个Map<String,ArrayList<Student>>
- * 将0120班存到一个Map<String,ArrayList<Student>>
- */
- public class Demo1 {
- public static void main(String[] args) {
- // Student对象已经封装好。一个name一个age这里就不拿上来了。直接使用
- // 第一个班,以及学生:
- // 创建ArrayList<Student>集合
- ArrayList<Student> stuArrList1 = new ArrayList<>();
- // 创建学生对象并添加到stuArrList1集合中
- stuArrList1.add(new Student("小明", 15));
- stuArrList1.add(new Student("小红", 16));
- // 创建HashMap集合
- HashMap<String, ArrayList<Student>> hMap1 = new HashMap<>();
- // 将创建好的stuArrLsit1添加到hMap1集合中
- hMap1.put("0118班", stuArrList1);
- // 第二个班,以及学生:同上
- ArrayList<Student> stuArrList2 = new ArrayList<>();
- stuArrList2.add(new Student("大明", 20));
- stuArrList2.add(new Student("大红", 18));
- HashMap<String, ArrayList<Student>> hMap2 = new HashMap<>();
- hMap2.put("0120班", stuArrList2);
- // 将创建好的两个班级存入一个ArrayList集合中
- ArrayList<HashMap<String, ArrayList<Student>>> lastArrList = new ArrayList<>();
- lastArrList.add(hMap1);
- lastArrList.add(hMap2);
- // 使用增强for循环遍历
- // 遍历lastArrList
- for (HashMap<String, ArrayList<Student>> map : lastArrList) {
- // 获取map中的键,但此时他还在HashMap中需要遍历拿出。
- Set<String> keySet = map.keySet();
- // 遍历keySet
- for (String key : keySet) {
- // 到了这里就获取到了HashMap<String,ArrayList<Student>>中的键值:0118班,0120班
- // 打印键值
- System.out.println(key);
- // 获取map中的值的地址
- ArrayList<Student> arrList = map.get(key);
- // 遍历arrList
- for (Student stu : arrList) {
- // 打印学生信息
- System.out.println("\t" + stu.getName() + ","
- + stu.getAge());
- }
- }
- }
- /*
- * 结果: 0118班 小明,15 小红,16 0120班 大明,20 大红,18
- */
- }
- }
复制代码 |
|