在最后一篇文章中,介绍了容器家族中的大族长-colection接口,今天就来看看容器家族中的二族长-Map接口。
Map也是容器家族的一个大分支,但是里面的元素都是按键对的(key-value)存储的形式,就像字典一样,可以用相应的key获得相应的value。
先来看看Map接口的内容。以下是阉割版的Map接口(去掉defaultt) method),去掉的部分涉及Stream操作,属于Map的高级用法,暂时不介绍。
可以看出,Map接口的内容实际上比collection接口更丰富,因为它省略了许多先进的方法,并且包含了另一个接口,Map.Entry接口,即键值对,一直被称为Map中元素需要实现的接口。
Map有三种遍历:1。通过遍历Keyset来遍历所有键对,2.通过遍历Entryset来实现,3.通过Entryset的Iterator来遍历。这里还有一个新概念——视图。视图实际上是一个集合,但一个无法修改的集合只能查询和通历视图。Map中有三个视图:键视图、值视图和键值对视图。你可以在下面看到一个栗子:
输出如下:
栗子介绍了三种遍历方式,也看到了三种视图。当我们试图修改视图时,我们抛出了一个unsupportedoperationexception异常,表明视图集不能修改。
在Map.在Entry接口中,还可以看到外部比较器和内部比较器,这两个概念暂时不介绍,将在后面的文章中介绍。
关于Map,有那么多话要说。目前只需要知道Map是以键值对的形式存取的,了解Map接口中的主要方法及其作用,了解Map的遍历方法和视图概念就够了。
本文到此结束,欢迎继续关注
![](/images/780-200-2.jpg)