Используйте Pair как ключ в LinkedHashMap (Java)

У меня есть такая HashMap

 LinkedHashMap<K, V> = new LinkedHashMap<>(); 

эта карта используется в качестве кеша для реализации LRU (наименее недавно использованного)

В этом кеше я хочу сохранить результаты функций, которые не имеют побочных эффектов, чтобы для одного и того же ввода они всегда давали один и тот же вывод.

Я также использую би-функции, которые имеют <T,U,R>

T и U - универсальные типы. А вот и Pair<T,U> в игру. Как мне сохранить такую ​​пару в качестве ключа в моей хэш-карте?

И может кто-нибудь объяснить, как именно перезапись функций equals(Obj o) и hashCode() должна помочь с этой проблемой?


person real_G    schedule 19.01.2021    source источник
comment
Какой Pair класс вы используете и что пробовали до сих пор? И что дает вам представление о том, что equals и hashCode играют роль? Могут, но если вы не знаете, то странно, что вы спрашиваете о них.   -  person daniu    schedule 19.01.2021
comment
@daniu Я читал некоторые другие сообщения об использовании пар в качестве ключа в хэш-карте, и они сказали, что важно реализовать equals и hashcode. Я сам написал класс Pair как Im, использующий JDK15   -  person real_G    schedule 19.01.2021
comment
нет, не было @daniu Моя карта не имеет карты в качестве параметра.   -  person real_G    schedule 19.01.2021
comment
Что ты имеешь в виду? Вы можете взять Pair из принятого ответа и использовать его как ключ к вашей карте. Возможно, вы захотите опубликовать пример кода, как вы собираетесь его использовать.   -  person daniu    schedule 19.01.2021