我要出于目的使用HashMap或任何Map。我想将Map变量的元素的key
定义为:
<Integer, Integer>
Java上可能吗?
Map<List<Integer>, SomethingElse> aMap =
new HashMap<List<Integer>, SomethingElse>();
您将需要编写一个类来用作地图的键。新类将容纳您的两个整数。确保实现equals()和hashCode()方法。
可能不是最好的解决方案,但是您可以使用Pair(值得一提Point)。检查此线程What is the equivalent of the C++ Pair<L,R> in Java?
这不是做到这一点的方法。我要做的是创建一种存储两个整数的包装器类,然后将该类实例化为每个映射条目的键。
List
可以作为键是,您可以使用List
作为地图的键。
注意:如果使用依赖于List
结果的Map
实现来跟踪键,则必须确保Map
总是返回相同的哈希码值。对于Object::hashCode
,这意味着列表中的所有对象必须返回相同的哈希码值,并且您不能在列表中添加或删除对象。
如下表所示,Object::hashCode
和List
是两个不依赖List
的实现。
或者,创建一个类来容纳您的一对IdentityHashMap
对象。
EnumMap
将EnumMap
的实例用作地图的键。
Object::hashCode
转储到控制台。
Object::hashCode
pairToString.toString():{IntegerPair {first = 10 | second = 11} =一个,IntegerPair {first = 20 | second = 21} = Twos,IntegerPair {first = 30 | second = 31} = Threes}