gpt4 book ai didi

java - Guava MapMaker().weakKeys().makeMap() 与 WeakHashMap

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:15:20 27 4
gpt4 key购买 nike

我们有一个 Scala 服务器,它通过套接字使用 Protocol Buffers 获取节点树,我们需要将额外的数据附加到每个节点。

在单线程上下文中,当节点树和关联数据将同时删除它们的强引用时(由于超出范围),是否有任何理由将 Google Guava 的 MapMaker 与 weakKeys() 一起使用过度使用 Wea​​kHashMap?似乎使用 MapMaker,需要为同步访问付费,在这种情况下不需要。

顺便说一句,如果 MapMaker 允许访问等价设置,那么人们可以选择引用相等而不关心弱引用或软引用,这将很有用。

最佳答案

WeakHashMap 的一个重要缺点是它不是“身份映射”。也就是说,它在键上使用 equals()hashCode(而不是 ==identityHashCode),这对于弱键真的没有意义。您可以通过确保您的 key 在其 equals 方法中使用身份相等来解决此错误。

关于java - Guava MapMaker().weakKeys().makeMap() 与 WeakHashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4201674/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com