【发布时间】:2014-01-23 07:06:33
【问题描述】:
众所周知,在 Sun(Oracle) JDK 中,HashSet 由HashMap 支持实现,以重用复杂的算法和数据结构。
但是,是否可以使用java.util.HashSet 作为其背面来实现MyHashMap?
如果可能,怎么做?如果不是,为什么?
请注意,本题仅讨论编码技巧,不适用于生产场景。
【问题讨论】:
-
HashMap可以存储对,HashSet可以存储单个元素,因此HashSet由HashMap的keySet()支持。如果你用HashSet支持你的MyHashMap,你将在哪里存储值并有效地获取/设置它们? -
投票结束“主要基于意见”很奇怪..
-
如果很容易达到目标,我不会把它称为编码技巧的讨论。看来我们对HashSet、HashMap等数据结构都很熟悉。所以想这个问题是为了好玩。不要被以前的经历所束缚。 @sanbhat
-
@sanbhat:正如 Peter 解释的那样,如果您可以检索现有元素,那么在集合中包含键/值对是完全可行的,其相等性由键。
-
@JonSkeet 同意.. 没想到 :)
标签: java data-structures hashmap hashset