为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用多个键实现Map?

如何使用多个键实现Map?

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

3 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

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


查看完整回答
反对 回复 2019-07-26
?
皈依舞

TA贡献1851条经验 获得超3个赞

我仍然会建议2地图解决方案,但有一个推特

Map<K2, K1> m2;Map<K1, V>  m1;

此方案允许您拥有任意数量的键“别名”。

它还允许您通过任何键更新值,而不会使地图不同步。


查看完整回答
反对 回复 2019-07-26
  • 3 回答
  • 0 关注
  • 1027 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信