我正在研究如何设计java类和接口,只看到java/util/Map.java
而我对此有疑问?
请通过回答帮助我。
界面Map
具有内部接口Entry
背后的原因是什么?
请参阅java / util / Map.java的源代码并回答。
答案 0 :(得分:2)
Map<K,V>
可以被视为关联存储(即将键连接到其值的容器)。它也可以看作是对的集合,其中第一个元素是键,第二个元素是它的对应值。
Map<K,V>
中的大多数方法都支持地图的关联容器视图。 Map.Entry<K,V>
接口用于支持地图的其他视图 - 即作为键值对的集合。
每张地图都提供对所谓条目集的访问权限,条目集是地图中的一组对。每对由Map.Entry<K,V>
的实例表示。
Map<Integer,String> myMap = ...
for (Map.Entry<Integer,String> e : myMap.entrySet()) {
System.out.println(e.getKey()+" ---> "+e.getValue());
}
可以在MapEntry<K,V>
之外定义Map<K,V>
接口。但是,由于界面与地图密切相关,因此将界面嵌套在地图内的决定非常有意义。