У меня был бы класс, который запускает несколько дорогих вычислений несколько раз. Я хотел бы добавить кеш для него, например:
private Map<MyObj, Result> cache = new HashMap<>();
private Result getFoo(MyObj myObj) {
Result r = cache.get(myObj);
if (r == null) {
r = expensiveCalculation(myObj);
}
return r;
}
Поскольку я знаю, что единственный способ, которым два MyObj-s могут быть равны, это если они идентичны (ссылка), я не хочу кеш для вычисления hashCode () и equals (). Есть ли способ иметь карту, которая использует только ссылку для хеширования?
Или лучший способ кеширования, как это?