Я хочу создать HashMap, который имеет несколько строк / Enum в качестве составного ключа. Я хочу изменить функциональность, так что если карта заполнена значением enum / string как «по умолчанию», то оно будет соответствовать чему-либо в поиске
Ключ здесь соответствует любому значению «default» , если указанное значение c не существует.
скажем, следующий класс является классом Key этого HashMap:
class KeyClass{
String val1;
String val2;
String val3;
}
HashMap<KeyClass, String> randomMap = new HashMap<>;
randomMap.put(new KeyClass("abc", "default", "efg"), "value1");
randomMap.put(new KeyClass("abc", "def", "efg"), "value2");
randomMap.get(new KeyClass("abc", "wef", "efg")); // should return "value1" as "wef" should match to default,
randomMap.get(new KeyClass("abc", "def", "efg")) // should return "value2", as it explicitly matches
В частности, я хотел бы предложить варианты дизайна для такой структуры Map (для instace она будет работать с двумя разными картами et c.), или как реализовать функцию hashCode для такого класса ключей, если это вообще возможно.