黑_马_程_序_员_Map集合小程序

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------

Map集合

  映射,键映射到值的集合,Map体系的集合,存储对象的时候,一次存储两个对象,一个称作键,一个称作值,双列集合

一个键,最多只能映射一个值

不允许出现重复键

  集合的嵌套 Map

数据结构,传智播客容器,存基础班容器,就业班容器

基础班存储学生 001 张三  002 李四

就业班存储学生 001 王武  002 赵柳

HashMap<String,HashMap<String,String >>  传智播客 = newHashMap<>();

HashMap<String,String> 基础班 = newHashMap<String,String>();

HashMap<String,Strng> 就业班 = newHashMap<String,String>()

传智播客.put("基础",基础班Map);

package cn.itcast.map;
/*数据结构,传智播客容器,存基础班容器,就业班容器
基础班存储学生 001 张三  002 李四
就业班存储学生 001 王武  002 赵柳
HashMap<String,HashMap<String,String >>  传智播客 = new HashMap<>();
HashMap<String,String> 基础班 = new HashMap<String,String>();
HashMap<String,Strng> 就业班 = new HashMap<String,String>()
传智播客.put("基础",基础班Map);
传智播客.put("就业",就业班Map);
基础班Map.put("001","张三")
就业班Map.put("001","王武")*/
import java.util.*;
public class HashMapTest {
public static void main(String[] args) {
//定义传智播客容器,键存储班的名字字符串,值存储的是班这个集合Map
HashMap<String,HashMap<String,String>> czbk = new
HashMap<String,HashMap<String,String>>();
//定义班级的集合,基础班,键存储学号,值存储姓名
HashMap<String,String> jichu  = new HashMap<String, String>();
//定义班级的集合,就业班,键存储学号,值存储姓名
HashMap<String,String> jiuye = new HashMap<String, String>();
//将学号,姓名,存储到班级的集合
jichu.put("001", "zhangsan");
jichu.put("002", "lisi");

jiuye.put("001", "wangwu");
jiuye.put("002", "zhaoliu");
//班级的集合,存储传智播客大的集合中
czbk.put("基础班", jichu);
czbk.put("就业班", jiuye);
// System.out.println(czbk);
//keySet(czbk);
entrySet(czbk);
}

//定义方法,实现获取entrySet方法
public static void entrySet(HashMap<String,HashMap<String,String>> czbk){
//获取大集合传智播客,键值对关系对象,存储到Set集合
Set<Map.Entry<String, HashMap<String,String>>> set = czbk.entrySet();
Iterator<Map.Entry<String, HashMap<String,String>>> it = set.iterator();
while(it.hasNext()){
//it.next()获取到的是大集合传智播客的键值对关系对象
Map.Entry<String, HashMap<String,String>> me = it.next();
//通过关系对象 getKey班级名字   getValue是一个map集合
String key = me.getKey();
HashMap<String,String> map = me.getValue();
//将小集合map的键值对关系对象获取,存储Set集合
Set<Map.Entry<String, String>> set2 = map.entrySet();
Iterator<Map.Entry<String, String>> it2 = set2.iterator();
while(it2.hasNext()){
//it2.next获取到的是小集合的键值对关系
Map.Entry<String, String> me2 = it2.next();
//获取小集合键值对,键学号,值是姓名
String num = me2.getKey();
String name = me2.getValue();
System.out.println(key+"..."+num+"..."+name);
}
}
}


//定义方法,实现获取 keySet方法
public static void keySet(HashMap<String,HashMap<String,String>> czbk){
//对外层传智播客集合,获取.大集合的键存储到了Set集合
Set<String> set = czbk.keySet();
Iterator<String> it = set.iterator();
while(it.hasNext()){
//it.next方法,获取到的是大集合的键,存储的是就业班,基础班的名字
String key = it.next();
//大集合的get方法,获取值,值是一个Map集合
HashMap<String,String> map = czbk.get(key);//学号和姓名
//获取小集合,存储姓名和学号的,将小集合的键,存储到Set集合
Set<String> set2 = map.keySet();
Iterator<String> it2 = set2.iterator();
while(it2.hasNext()){
//it2.next获取到的是map的键,存储的是学号
String num = it2.next();
//小集合map的get方法获取值,值存储的是名字
String name = map.get(num);
//输出,基础班...001....名字
System.out.println(key+"..."+num+"..."+name);
}
}
}
}

这是我在传智培训的时候写的一个小程序。


----------------------- android培训、java培训、java学习型技术博客、期待与您交流!

 ----------------------详情请查看:http://edu.csdn.net/heima

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值