java map 写法_Java之集合(七)Map

1.前言

按照顺序,本章本是要对Set的相关类进行介绍及讲解的。但是对于其实现有所了解的都应该知道,Set本身的代码十分简单,其实现都是通过Map来实现的,所以本章介绍一下Java中的Map接口及抽象类。

2.Map接口

b82dab68e1bfc5c1423f2cc651d874dc.png

除去JDK8添加的新特性不看,Map中定义的方法如下:

1.size():返回键值对个数

2.isEmpty():判断是否为空

3.containsKey(key):键的集合中是否存在所给键

4.containsValue(value):值的集合中是否存在所给值

5.get(key):获取指定键的值

6.put(key,value):存入一对键值对

7.remove(key):移除指定键的键值对

8.putAll(Map):将所给的键值对全部存入

9.clear():清除所有的键值对

10.keySet():将所有的键值以Set集合返回

11.values():返回所有值的集合

12.entrySet():返回键值对的Set集合

13.getOrDefault():如果该键存在(哪怕对应值为null),返回其值,否则返回所给默认值

14.putIfAbsent():如果所给键不存在或者存在对应的值为null,重新设置,否则返回其值

15.remove(key,value):如果所给的值与该键对应的值不相等就不移除该键。

16.replace(key, oldValue, newValue):如果键所对应的值与所给旧值相等就用新值替换。

17.replace(key, value):如果该键存在,就用新值替换。并返回之前的值。

上述所有方法,从getOrDefault就使用了JDK8的新特性,能在接口中实现默认方法。

3.Entry

Entry是map实现的一个关键数据结构(就是一个键值对对象),关于Entry的接口定义如下:

4c591d25da518792e2b091f54d44ff18.png

1.getKey():获取键值对的键

2.getValue():获取键值对的值

3.setValue():设置键值对的值

后面的方法都是JDK8相关内容,不进行讲解。

4.AbstractMap

抽象类的实现并没有多大参考价值,就像其它集合一样,大部分子类都覆盖了抽象父类的相关方法。

e76b7e37dbaf7076baec3ae6316aa824.png

size方法就比较很有意思。其使用的是entrySet的大小,而开篇也说了Set是借助Map实现的,其实际上调用的又是Map的size()方法。如果按抽象父类这种写法,那么就死循环了。同样的还有clear方法。

9fadcafe53f47b80b9a14d3ec43c2af5.png

containsValue或者key都是通过entrySet拿到所有的键值对遍历实现的,实现和其它集合的抽象父类基本一致。之后的get,remove等方法都是一样的原理。其余的方法也不再一一叙述,如果前面几章集合的类认真学习过,这个基本是一样的套路。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值