How to implement a Map with multiple keys?
data-structures, java
Solution
Two maps. One `Map<K1, V>` and one `Map<K2, V>`. If you must have a single interface, write a wrapper class that implements said methods.
Problem
I need a data structure which behaves like a Map, but uses multiple (differently-typed) keys to access its values. (Let's not be too general, let's say two keys) Keys are guaranteed to be unique. Something like: ``` MyMap<K1,K2,V> ... ``` With methods like: ``` getByKey1(K1 key)... getByKey2(K2 key)... containsKey1(K1 key)... containsKey2(K2 key)... ``` Do you have any suggestions? The only thing I can think of is: Write a class which uses two Maps internally. EDIT Some people suggest me to use a tuple, a pair, or similar as a key for Java's Map, but this would not work for me: I have to be able, as written above, to search values by only one of the two keys specified. Maps use hash codes of keys and check for their equality.