【发布时间】:2014-03-02 11:08:29
【问题描述】:
给定以下代码,我得到一个null(我想要的是“1234”)。但是我希望有一个可以将键视为相等的映射,如果int[]的内容相等(而不是考虑int[]的引用),我该怎么做?
HashMap<int[], String> maps=new HashMap<int[], String>();
int[] i=new int[]{1,2,3};
int[] j=new int[]{1,2,3};
maps.put(i,"1234");
System.out.print(maps.get(j));
我对任何允许将 int[] 保留为键(包括 TreeMap)等的地图持开放态度,附带条件是,如果这不会影响地图访问时间的有效性。
【问题讨论】:
-
用一个可以正确覆盖equals/hashCode的对象包装键。
-
... 或使用 TIntArrayList,它包装了一个
int[]