来自J. Bloch
A ...内存泄漏的来源是监听器...确保回调被及时垃圾回收的最好方法是只存储对它们的弱引用,例如,将它们仅作为键存储在WeakHashMap中。
那么,为什么Java Collections framework中没有任何WeakSet呢?
发布于 2010-10-31 19:47:54
Collections.newSetFromMap
Set<Object> weakHashSet =
Collections.newSetFromMap(
new WeakHashMap<Object, Boolean>()
);正如在Collections.newSetFromMap文档中看到的,传递一个WeakHashMap来获取一个Set。
发布于 2018-03-02 22:00:05
虽然您确实可以使用Collections.newSetFromMap()来获取WeakSet,但它的用例实际上相当有限。
如果您想实现类似于String.intern()的东西,那么您可能想看看Guava的Interners.newWeakInterner()功能。
https://stackoverflow.com/questions/4062919
复制相似问题