hgu*_*294 13 java multimap guava
是否有可用的番石榴Cache和Multimap功能组合?基本上,我需要一个集合,其中条目在给定时间后过期,例如可用Cache但我有非唯一键,我需要条目独立到期.
我认为Louis Wasserman在上面的一条评论中提供了答案,即没有现成的组合Multimap和Cache可用.我用以下伪代码中概述的解决方案解决了我的问题/要求:
private Cache<Integer,Object> cache = CacheBuilder.newBuilder().SomeConfig.build();
private Multimap<Integer,Object> multimap = HashMultimap<Integer, Object>.create();
private AtomicInteger atomicid = new AtomicInteger(0);
public void putInMultimap(int id, Object obj) {
int mapid = atomicid.addAndGet(1);
cache.put(mapid,obj);
multimap.put(id,mapid);
}
public List<Object> getFromMultimap(int id) {
Set<Integer> mapids = multimap.get(id);
List<Object> list = new ArrayList<Object>();
for (int i : mapids) {
list.add(cache.getIfPresent(i));
}
return list;
}
Run Code Online (Sandbox Code Playgroud)
这个简单的"解决方案"有一些限制,但它对我来说没问题.
| 归档时间: |
|
| 查看次数: |
4667 次 |
| 最近记录: |