32.Java之集合Map(Map集合介绍,Map 接口和常用方法,Map 遍历方式)

32.1 Map集合介绍
Map 与 Collection 并列存在,用于保存具有映射关系的数据:Key-Value

在这里插入图片描述
JDK8

  1. Map 中的 Key 和 value 可以是任何引用类型的数据,会封装到 HashMap$Node 对象中
  2. Map 中的 Key 不允许重复
  3. Map 中的 value 可以重复
  4. Map 的 Key 可以为 null,value 也可以为 null,注意 Key 为 null,只能有一个,value 为 null,可以多个
  5. 常用 String 类作为 Map 的 Key
  6. Key 和 value 之间存在单向一对一关系,即通过指定的 Key 总能找到对应的 value
  7. 一对 k-v 是放在一个 Node 中的,是因为 Node 实现了 Entry 接口,也有的说 一对 k-v 就是一个 Entry
32.2 Map 接口和常用方法
  1. put():添加
  2. remove():根据键值删除映射关系
  3. get():根据键获取值
  4. size():获取元素个数
  5. isEmpty():判断个数是否为0
  6. clear():清除
  7. containsKey:查找键是否存在
  8. KeySet():获取所有的键,返回 Set
Map map = new HashMap();
map.put(... , ...);
...
Set keyset = map.keySet();
  1. entrySet:获取所有关系,返回 Set< Entry >
Set entrySet = map.entrySet();
  1. values():获取所有的值,返回 Collection
Collection values = map.values();
32.3 Map 遍历方式
Map map = new HashMap();
map.put("dc","邓超");
map.put("wbq","王宝强");
map.put("yyqx","易烊千玺");
map.put(null,"空");
3.1 先取出所有的 Key,通过Key 取出对应的 Value
  1. 增强 for
Set keyset = map.keySet();
for (Object key : keyset) {
     System.out.println(key + "-" + map.get(key));
 }
  1. 迭代器
Iterator iterator = map.keySet().iterator();
while (iterator.hasNext()) {
     Object key = iterator.next();
     System.out.println(key + "-" + map.get(key));
 }
3.2 把所有的 values 取出
Collection values = map.values();
//这里可以使用所有的Collections使用的遍历方法
//1. 增强for
for (Object value :values) {
    System.out.println(value);
}

//2. 迭代器
Iterator iterator = values.iterator();
while (iterator.hasNext()) {
    Object value = iterator.next();
    System.out.println(value);
}
3.3 通过 EntrySet 来获取 K-V
Set entrySet = map.entrySet();
//1. 增强for
 for (Object entry : entrySet) {
     //将 entry 转成 Map.Entry
     Map.Entry m = (Map.Entry) entry;
     System.out.println(m.getKey() + "-" + m.getValue());
 }
 //2. 迭代器
 Iterator iterator = entrySet.iterator();
 while (iterator.hasNext()) {
     Object entry = iterator.next();
     Map.Entry m = (Map.Entry) entry;
     System.out.println(m.getKey() + "-" + m.getValue());
 }

map.entrySet() 返回的是 Set<Entry> ,实际上Map中封装的 Entry 里保存了 K-V 键值对的形式,然后把 Entry 存入 Set 里取出

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值