微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Eclipse集合中的软值进行映射

如何解决使用Eclipse集合中的软值进行映射

我目前正在考虑将其整合到我所参与的项目中的单个集合库中,尽管我对此经验很少,但我非常喜欢Eclipse Collections的外观。

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

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

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

解决方法

Eclipse集合当前没有WeakValueHashMapSoftValueHashMap。我也想不出一种方法,即在不实施这些示例的情况下使用最少的模板进行设置。如果要使用Eclipse Collections MutableMap API而不是Map,则可以改写上面的ReferenceMap

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。