私はキーがint []であるjavaでハッシュテーブルを作ろうとしていますが、それはうまくいきません。私は私の問題を示すために、少しテストプログラムを作っていますjavaのキーとしてint配列を持つHashtable
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));
}
}
私の意図は、2つの配列が同等であるが、彼らはいけないので、両方のht.get callesは、同じ結果を返すべきであるということです。ここでの結果は、コードを実行しているからである:
the result from ht.get(test1)
null
the result from ht.get(test0)
foo
は、私がここで何かをしないのですか、それはhastableのキーとしてのint []を使用するだけでは不可能でしょうか?
+1完全回答 –
リストは(通常)変更可能です。重要な違いは、['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)は、要素ごとの等価性を使用する必要があります。 –
@Matthew、良い点。変更可能性の言及を削除しました。 –