java map 嵌套 put_第3章 Map集合的嵌套

1.1 Map中嵌套Map

1.1.1 案例代码十一

package com.itheima_03;

public class Student {

private String num;

private String name;

public Student() {

super();

// TODO Auto-generated constructor stub

}

public Student(String num, String name) {

super();

this.num = num;

this.name = name;

}

public String getNum() {

return num;

}

public void setNum(String num) {

this.num = num;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

@Override

public String toString() {

return "Student [num=" + num + ", name=" + name + "]";

}

}

package com.itheima_03;

import java.util.HashMap;

import java.util.Map;

import java.util.Set;

/*

* itheima:基础班,就业班

基础班:01 zhangsan;02 lisi

就业班:01 wangwu;02 zhaoliu

分析:

我们需要有班级和学生,班级和学生之间是一种对应关系(映射关系),

由于有对应关系,所以我们可以使用Map集合来存储这样的数据,

可以使用班级作为key,学生作为value,

Map中的key只能对应一个value,但是我们一个班级中有多个学生,

我们可以创建一个包含多个学生的集合,让班级和这个集合产生一一对应的关系,

学生信息分为学号和姓名,这也是一种对应关系,所以我们使用Map集合来存储学生信息

学校Map

基础班 基础班学生Map

就业班 就业班学生Map

Map嵌套Map

*

*/

public class MapTest {

public static void main(String[] args) {

//学校Map

Map> itheima = new HashMap>();

//基础班学生Map

Map base = new HashMap();

base.put("01", "zhangsan");

base.put("02", "lisi");

//就业班学生Map

Map job = new HashMap();

job.put("01", "wangwu");

job.put("02", "zhaoliu");

//把包含了学生的Map添加到学校Map中

itheima.put("基础班", base);

itheima.put("就业班", job);

//遍历学校Map,查看有多少个班级和对应的学生

//先获取所有的班级

Set keys =itheima.keySet();

for (String key : keys) {

//输出班级名称

System.out.println("班级名称:" + key);

//根据班级获取对应的所有学生

Map stus = itheima.get(key);

//获取所有学生的学号

Set nums = stus.keySet();

for (String num : nums) {

//根据学号获取学生姓名

String name = stus.get(num);

System.out.println("学号:" + num + ",姓名:" + name);

}

}

}

}

1.1.2 案例代码十二

package com.itheima_03;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import java.util.Set;

/*

* itheima:基础班,就业班

基础班:01 zhangsan;02 lisi

就业班:01 wangwu;02 zhaoliu

更为面向对象

学校Map

基础班 基础班学生List

就业班 就业班学生List

Map嵌套Collection

*/

public class MapTest2 {

public static void main(String[] args) {

//学校Map

Map> itheima = new HashMap>();

//基础班学生List

List base = new ArrayList();

base.add(new Student("01","zhangsan"));

base.add(new Student("02","lisi"));

//就业班学生List

List job = new ArrayList();

job.add(new Student("01","wangwu"));

job.add(new Student("02","zhaoliu"));

//把包含了学生对象的List添加到学校Map中

itheima.put("基础班", base);

itheima.put("就业班", job);

//遍历学校Map,查看有多少班级和对应的学生

//获取所有Entry对象

Set>> entrys = itheima.entrySet();

for (Map.Entry> entry : entrys) {

//获取班级

String key = entry.getKey();

System.out.println("班级名称:" + key);

//获取包含了学生对象List

List value = entry.getValue();

for (Student student : value) {

System.out.println(student);

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值