java - 接口(interface) Map 背后有内部接口(interface) Entry 的原因是什么?

标签 java

我正在研究 java 类和接口(interface)是如何设计的,刚刚看到 java/util/Map.java 并且我有以下疑问? 请帮助我回答。

接口(interface) Map 有内部接口(interface) Entry 的原因是什么?
请查看java/util/Map.java的源代码并回答。

最佳答案

Map<K,V>可以被视为关联存储(即,将键连接到它们的值的容器)。它也可以看作是一个对的集合,其中第一个元素是键,第二个元素是它对应的值。

Map<K,V> 中的大多数方法支持 map 的关联容器 View 。 Map.Entry<K,V>界面用于支持 map 的其他 View - 即作为键值对的集合。

每个 map 都提供对所谓的条目集的访问,这是 map 中的一组对。每对由 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>外部接口(interface)Map<K,V> .然而,由于界面与 map 密切相关,因此将界面嵌套在 map 中的决定非常有意义。

关于java - 接口(interface) Map 背后有内部接口(interface) Entry 的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30115377/

相关文章:

java - 如何检查字符串的前四个字符是否为 A-G,后 3 个字符是否为数字?

java - intellij - spring-boot 未被识别(未映射的 Spring-boot 注释配置类)

java - 如何显式调用 Maven 插件而不运行?

java - 谷歌眼镜 : Developing and testing using PlayGround

java - 找回密码Tomcat认证

java - 如何在 spring-boot-admin 中显示日志文件?

java - 输入 channel 订阅者无法使用 Spring Cloud 数据流中的自定义接收器

JavaFx 元素未绑定(bind)到 fx :id 上的 Controller 变量

java - 每个请求的线程 tcp 服务器

java - 在 Oracle 12c 上插入/检索阿拉伯语数据