如何使用多个键实现Map?

如何使用多个键实现Map?

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

钥匙保证是独一无二的。

就像是:

MyMap<K1,K2,V> ...

使用以下方法:

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

你有什么建议吗?

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

编辑 有些人建议我使用元组或类似作为Java Map的键,但这对我不起作用
如上所述,我必须能够通过两个键中的一个来搜索值指定。
地图使用密钥的哈希码并检查它们的相等性。


慕勒3428872
浏览 1028回答 3
3回答

繁星点点滴滴

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

皈依舞

我仍然会建议2地图解决方案,但有一个推特Map<K2,&nbsp;K1>&nbsp;m2;Map<K1,&nbsp;V>&nbsp;&nbsp;m1;此方案允许您拥有任意数量的键“别名”。它还允许您通过任何键更新值,而不会使地图不同步。
打开App,查看更多内容
随时随地看视频慕课网APP