Я пытаюсь кэшировать множество похожих значений только с заданными требованиями. К сожалению, 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>
и хранить ту же ссылку, что и ключ и значение, но это выглядит так же грязно ...
Есть ли лучший способ сделать это?