我试图缓存许多类似的值只有类集要求。不幸的是Set<?>
只允许我检查里面是否存在元素 - 它不会将现有元素给我。我想要做的是:缓存集合样集合
Element e = receiveSomeElement();
e = elements.cache(e);
// now e is either the original e, or one that was already in the cache
doSomeWorkOn(e);
我大概可以模拟与SortedSet
并获得.subSet(e, e)
,但似乎时间保持排序的集浪费。我也可以使用HashMap<Element, Element>
并存储相同的引用作为键和值,但这似乎就像脏......
有没有更好的方法来做到这一点?
只有HashMap中去,只有你可以实现缓存 – developer 2011-05-10 10:23:17
方式你为什么要这么做?你什么时候从缓存中清除元素?你想怎么做?您可能需要考虑在缓存中使用WeakReferences。 – Kaj 2011-05-10 10:29:34
我最后写'ObjectCache实现集'用'WeakHashMap中>'成员。 –
viraptor
2011-05-10 10:59:51