我需要一个行为类似于 Map 的数据结构,但使用多个(不同类型的)键来访问其值。 (我们不要太笼统,我们说 两个 键)
密钥保证是唯一的。
就像是:
MyMap<K1,K2,V> ...
使用以下方法:
getByKey1(K1 key)... getByKey2(K2 key)... containsKey1(K1 key)... containsKey2(K2 key)...
你有什么建议吗?
我唯一能想到的是: 编写一个在内部使用两个 Map 的类。
编辑 有些人建议我使用 tuple , a pair 或类似的作为Java Map 的键,但这对我 不起作用 : 如上所述,我必须能够仅通过两个键中的一个来搜索值指定的。 地图使用键的哈希码并检查它们的相等性。
两张地图。一个Map<K1, V>和一个Map<K2, V>。如果您必须有一个接口,请编写一个实现上述方法的包装类。
Map<K1, V>
Map<K2, V>