一尘不染

Java 如何实现具有多个键的地图?

java

我需要一个数据结构,其行为类似于Map,但是使用多个(不同类型的)键来访问其值。
(让我们不太笼统,假设有两个键)

键保证是唯一的。

就像是:

MyMap<K1,K2,V> ...

使用以下方法:

getByKey1(K1 key)...
getByKey2(K2 key)...
containsKey1(K1 key)...
containsKey2(K2 key)...

你有什么建议吗?

我唯一能想到的是:
编写一个内部使用两个Maps的类。

编辑 有人建议我使用元组,一对或类似键作为Java Map的键,但是这对我来说不起作用:
如上所述,我必须只能通过两个键之一来搜索值指定。
映射使用键的哈希码并检查其相等性。


阅读 451

收藏
2020-03-08

共1个答案

一尘不染

两张地图。一个Map<K1, V>和一个Map<K2, V>。如果必须具有单个接口,请编写一个实现上述方法的包装器类。

2020-03-08