【发布时间】:2026-01-06 22:45:01
【问题描述】:
我想基于 Java SoftReference 和 HashMap 实现 SoftHashMap。 Java 文档,关于 WeakHashMap,说键是弱引用而不是值。我想知道hashcode() 将用于底层HashMap 的放置和拉取功能。我假设WeakHashMap put 像这样工作:hashMap.put(new WeakReference(key), value); 如果这是真的,如何找到密钥的条目。
如果值被包裹在WeakReference 中而不是键中不是更好吗?
【问题讨论】:
-
标准API类的源码是JDK自带的,看看就好。
-
这里是
WeakHashMap.put()的参考impl的链接,它不符合你描述的模式。 -
其他库包括弱值映射和其他用于其他目的的变体。
-
读者可能想看看现有的 SoftHashMap 实现:*.com/questions/264582/…
标签: java weakhashmap