【发布时间】:2012-02-04 14:22:32
【问题描述】:
我的问题是,例如,在我的代码的某些部分中,我使用数组列表作为哈希图中的键
ArrayList<Integer> array = new ArrayList<Integer>();
然后我把我的数组像一个键一样放在哈希映射中(我确信我需要它)
HashMap<ArrayList<Integer>, String> map = new HashMap<ArrayList<Integer>, String>();
map.put(array, "value1");
问题来了:当我向我的数组添加一些值,然后我尝试使用相同的数组恢复数据时,哈希映射无法找到它。
array.add(23);
String value = map.get(array);
此时value为null而不是字符串“value1” 我正在测试,我发现当数组列表增长时 hashCode 会发生变化,这是我问题的中心点,但我想知道如何解决这个问题。
【问题讨论】:
-
我几乎可以肯定您不会想要这样做。您更有可能想要
Map<String, List<Integer>> -
非常感谢您的回答,但我很确定我需要这种方式...
标签: java arraylist hashmap hashcode