gpt4 book ai didi

java - 我如何使用带有 byte[] 键的 Guava 缓存?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:08:02 54 4
gpt4 key购买 nike

我创建了一个 Guava 缓存:

Cache<byte[], byte[]>  = CacheBuilder.newBuilder()
.maximumSize(1_000_000)
.expireAfterAccess(20, TimeUnit.MINUTES)
.build();use

但是当我调用 get() 时它没有找到 key 。当我需要使用 Arrays.equals() 时,该实现似乎使用 equals() 来查找 key 。

有没有办法设置缓存使其以这种方式工作?在内部,它似乎具有灵 active ,因为比较使用 Equivalence 而不是直接的 equals(),但 CacheBuilder api 似乎没有设置 Equivalence 对象的方法。

如有任何帮助,我们将不胜感激。

最佳答案

如果自然平等是您唯一的解决方案(如在 HashMap 中),只需将您的实例包装在一个完成这项工作的对象中! JVM 可以很好地处理非常短暂的生存对象,所以不要因为创建一些小对象只是为了缓存查询而烦恼。

如@LouisWasserman 所述,您可以使用 ByteBuffer .您应该如何注意不要修改缓存键支持的数组。

关于java - 我如何使用带有 byte[] 键的 Guava 缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32980945/

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