【问题标题】:Map with soft values in Eclipse Collections在 Eclipse Collections 中使用软值映射
【发布时间】:2020-12-16 21:48:55
【问题描述】:

我目前正在考虑在我参与的项目中整合到单个集合库,虽然我对此没有什么经验,但我真的很喜欢 Eclipse Collections 的外观。

我们的一个具体用例是我们使用Map 实现,在多个地方使用软值引用作为简单缓存。我们目前为此使用 Apache Commons Collections 的 ReferenceMap,例如:

private final Map<Integer, Long[]> cache = new ReferenceMap<>();

当然,这可以用标准 Java HashMap 替换,其中值是 SoftReference 实现,但我希望 Eclipse Collections 有类似的“方便”集合类型或工厂/构建器用于此目的。有这样的事吗?或者更广泛地说:我如何使用 Eclipse Collections 和最少的样板来设置具有软值引用的 Map?

【问题讨论】:

    标签: java eclipse-collections


    【解决方案1】:

    Eclipse Collections 目前没有WeakValueHashMapSoftValueHashMap。我也想不出一种在不实施它们的情况下用最少的样板进行设置的方法。如果您想使用 Eclipse Collections MutableMap API 而不是 Map,您可以修改上面的 ReferenceMap

    private final MutableMap<Integer, Long[]> cache = Maps.adapt(new ReferenceMap<>());
    

    这不会帮助您摆脱对 Apache Commons 的依赖,但会让您更接近一致的 API 使用。

    如果您有兴趣为 Eclipse Collections 做出贡献,WeakValueHashMapSoftValueHashMap 的实现肯定有空间。

    【讨论】:

      猜你喜欢
      • 2021-05-01
      • 2022-11-01
      • 2018-04-15
      • 2011-06-15
      • 1970-01-01
      • 2015-06-03
      • 1970-01-01
      • 2017-03-07
      • 1970-01-01
      相关资源
      最近更新 更多