Map <K1,K2,V>的任何实现,即两个键?

Mis*_*ble 7 java generics maps

我需要一张有两个键的地图,例如

Map2<String /*ssn*/, String /*empId*/, Employee> _employees;
Run Code Online (Sandbox Code Playgroud)

这样我就可以

_employees.put(e.ssn(), e.empId(), e)
Run Code Online (Sandbox Code Playgroud)

然后

_employees.get1(someSsn);
_employees.get2(someImpId);
Run Code Online (Sandbox Code Playgroud)

甚至

_employees.remove1(someImpId);
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我要停在两个,为什么不多,可能是因为我现在需要的情况是这样:-)但是类型需要处理固定数量的键是类型安全的 - 类型参数不能是vararg :-)

感谢任何指针,或建议为什么这是一个坏主意.

Ste*_*Mai 4

我的第一个想法是:我认为最简单的方法是两张地图。

Map< String, Map< String,Employee> > _employees;
Run Code Online (Sandbox Code Playgroud)

但从表面上看,您只是希望能够通过 SSN 或 ID 查找员工。那么,什么会阻止您制作两张地图,或者最坏的情况是制作一个包含两张地图的类?

作为澄清,您是否正在寻找一个复合键,即员工由其 SSN 和 ID 的组合唯一标识,而不是单独标识,或者您是否正在寻找两种不同的方式来引用员工?