I need a map that has two keys, e.g.
Map2<String /*ssn*/, String /*empId*/, Employee> _employees;
So that I can
_employees.put(e.ssn(), e.empId(), e)
And later
_employees.get1(someSsn);
_employees.get2(someImpId);
Or even
_employees.remove1(someImpId);
I am not sure why I want to stop at two, why not more, probably because that's the case I am I need right now :-) But the type needs to handle fixed number of keys to be type-safe -- type parameters cannot be vararg :-)
Appreciate any pointers, or advice on why this is a bad idea.
I imagine the main key would be empId
, so I would build a Map
with that as the key, i.e. empId
---> Employee
. All other unique attributes (e.g. ssn
) would be treated as secondary and will use separate Map
s as a lookup table for empId
(e.g. ssn
---> empId
).
This implementation makes it easy to add/remove employees, since you only need to change one Map
, i.e. empId
---> Employee
; the other Map
s can be rebuilt only when needed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With