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.
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.