我需要创建一个包含3列的地图:2个键和1个值。因此,每个值将包含2个不同类类型的键,并且可以使用任一键来获取。但是我的问题是HashMap / Map仅支持1个键和1个值。有没有办法创建类似Map<Key1, Key2, Value>而不是Map<Key, Value>的东西?因此可以使用ValueKey1来获取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()相关)。

09-10 05:43
查看更多