我需要创建一个包含3列的地图:2个键和1个值。因此,每个值将包含2个不同类类型的键,并且可以使用任一键来获取。但是我的问题是HashMap / Map仅支持1个键和1个值。有没有办法创建类似Map<Key1, Key2, Value>
而不是Map<Key, Value>
的东西?因此可以使用Value
或Key1
来获取Key2
。
如果是重复的问题或不好的问题,我深表歉意,但是我在Stack Overflow上找不到类似的问题。
P.S:我既不想创建2张地图:Map<Key1, Value>
和Map<Key2, Value>
,也不想创建嵌套地图,我想找一个多键表,就像上面的一样。
最佳答案
只需将值存储两次:
Map<Object, Value> map = new HashMap<>();
map.put(key1, someValue);
map.put(key2, someValue);
问题是,密钥的类型实际上并不重要,因此请使用允许两种密钥类型都通用的绑定-
Object
很好。请注意,
Map#get()
方法的参数类型无论如何都只是Object
,因此从查找角度看,拥有单独的映射没有任何价值(键的类型仅与put()
相关)。