我試圖緩存許多類似的值只有類集要求。不幸的是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