Map一系也是我们很常用的集合了,这里有一个误区,Map接口并不继承Collection接口。Map接口的常用实现类也很多,我打算分成HashMap,CurrentHashMap,TreeMap、EnumMap五部分写。Map接口的常用实现类图如下:
,
Map(图)是键值关系的体现,一个key只能对应至多一个value,且key不允许重复.Map接口是用于替代Dictionary (字典)虚基类的(字典类的最典型实现就是HashTable).Map接口提供了常见的Map方法:size/contains/get/put巴拉巴拉,虚基类AbstarctMap提供了这些方法的简单时间,绝大多数Map实现类均继承该虚基类。
常用的方法不提,看一下Map接口中定义的没怎么注意的方法吧:
1.jdk1.8新方法getOrDefault,带一个默认值的get,很方便;
2.forEach(),replaceALL(),方法的用处顾名思义,也是jdk1.8函数式新方法
3.1.8新方法putIfAbsent,如果指定key已关联则返回现在的关联值,未关联则关联输入的value;
4.1.8新remove(),带一个value值,如果key对应的value值与输入的同样则不移除,返回false,否则移除并返回true;
5.1.8新replace(),输入key,oldValue,newValue,仅当key对应的value和oldValue一致时,替换weinewValue。
6.还是1.8,computeIfAbsent方法,如果key对应的value为空,使用传入的函数计算value值并填入。computeIfPresent方法,如果存在对应值则使用传入函数计算并替换。还有不管空不空都能计算并将结果与传入key关联的compute方法,emmm
7.merge方法,输入key,value,function,如果key对应值为空,将key与value对应,如果不为空,替换为使用function计算后的值。
以上就是Map接口的几个方法一览,下一篇开始会把几个主要的Map接口实现过一遍