java - 为什么我们有单独的接口,称为 Entry,它嵌套在 JAVA 的 Map 接口中
问题描述
我们知道 Map 是一个接口,由 HashMap、TreeMap 等类实现。
既然所有这些实现类都具有相同的入口模式(即键值对),为什么我们不应该在 Map 接口本身中拥有这种入口模式呢?
将这个 Entry 模式单独作为嵌套在 Map Interface 中的 Interface 的目的是什么?
提前致谢。
解决方案
Map.Entry
封装在其中的原因Map
是因为它是一个非常紧密的强耦合接口,专门设计用于Map
独占。出于您的意图和目的,您可以将其视为一对(键和值),表示Map
.
不同的 Map 实现对如何存储条目有不同的要求。AHashMap
计算密钥的哈希码并将其存储在其Node
实现中(扩展Map.Entry
),而TreeMap
'sEntry
具有诸如父条目、左右子节点以及节点的“颜色”之类的信息(因为它是红黑树)。每个Map
实现都有自己的要求,因此Entry
被保留为接口。
推荐阅读
- python - Py4JJavaError 运行 Pyspark 程序
- javascript - Ajax返回响应函数和只返回的区别
- python - 使用 tensorflow estimator api 进行混合精度训练
- linux - 为特定的 linux 程序强制执行低进程 ID
- sql-server - SQL - 如何组合行
- python - 将闭包传递给函数中的 FunctionType
- r - 单独栅格图层中的随机森林类概率
- android - 如何填充 SimpleDraweeView 的所有区域?
- go - golangci-lint 常量显式类型
- amazon-web-services - 您能否使用 Lambda@Edge 以非 Javascript 语言修改 AWS CloudFront 事件的 URI?