根据重复时间间隔的值从番石榴缓存中删除条目



我正试图每天从番石榴缓存中删除一次值为-1的键。请就番石榴缓存中有助于实现这一目标的任何方法向我提出建议。

如果您不知道密钥,删除条目的唯一方法是在整个缓存上迭代,例如使用Cache#asMap()视图和Map#removeIf(Predicate):

Cache<String, Integer> cache = CacheBuilder.newBuilder()
.build();
cache.putAll(ImmutableMap.of(
"one", 1,
"two", 2,
"something", -1,
"-", -1,
"forty-two", 42
));
System.out.println("Before: " + cache.asMap());
System.out.println(cache.getIfPresent("something"));
cache.asMap().entrySet().removeIf(e -> e.getValue().equals(-1));
System.out.println("After: " + cache.asMap());
System.out.println(cache.getIfPresent("something"));

输出:

Before: {something=-1, two=2, -=-1, one=1, forty-two=42}
-1
After: {two=2, one=1, forty-two=42}
null

最新更新