首页 > 解决方案 > 为什么我们有单独的接口,称为 Entry,它嵌套在 JAVA 的 Map 接口中

问题描述

我们知道 Map 是一个接口,由 HashMap、TreeMap 等类实现。

既然所有这些实现类都具有相同的入口模式(即键值对),为什么我们不应该在 Map 接口本身中拥有这种入口模式呢?

将这个 Entry 模式单独作为嵌套在 Map Interface 中的 Interface 的目的是什么?

提前致谢。

标签: javaoop

解决方案


Map.Entry封装在其中的原因Map是因为它是一个非常紧密的强耦合接口,专门设计用于Map独占。出于您的意图和目的,您可以将其视为一对(键和值),表示Map.

不同的 Map 实现对如何存储条目有不同的要求。AHashMap计算密钥的哈希码并将其存储在其Node实现中(扩展Map.Entry),而TreeMap'sEntry具有诸如父条目、左右子节点以及节点的“颜色”之类的信息(因为它是红黑树)。每个Map实现都有自己的要求,因此Entry被保留为接口。


推荐阅读