我想在java中的鍵是int [],但它不起作用的哈希表。我做了一個小測試程序,以顯示我的問題:用int數組作爲鍵的哈希表在java中
public class test{
public static void main(String[] args){
int[] test0 = {1,1};
int[] test1 = {1,1};
Hashtable<int[], String> ht = new Hashtable<int[], String>();
String s0 = "foo";
ht.put(test0, s0);
System.out.println("the result from ht.get(test1)");
System.out.println(ht.get(test1));
System.out.println("the result from ht.get(test0)");
System.out.println(ht.get(test0));
}
}
我的本意是,無論ht.get卡列斯應該返回相同的結果,因爲這兩個數組是相等的,但他們不。下面是從運行代碼的結果:
the result from ht.get(test1)
null
the result from ht.get(test0)
foo
我失去了一些東西在這裏,或只是無法使用int []作爲在hastable鑰匙?
+1完美答案 – 2011-01-08 09:28:54
列表(通常)也是可變的。最重要的區別是[`List.equals`](http://download.oracle.com/javase/6/docs/api/java/util/List.html#equals%28java.lang.Object%29)和[`List.hashCode`](http://download.oracle.com/javase/6/docs/api/java/util/List.html#hashCode%28%29)需要使用元素相等。 – 2011-01-08 09:30:52