Tôi đang cố gắng để làm cho một hashtable trong java, nơi các phím int [], nhưng nó không hoạt động. Tôi đã thực hiện một chương trình thử nghiệm nhỏ để hiển thị vấn đề của tôi:Hashtable với mảng int là chìa khóa trong 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));
}
}
Ý định của tôi là cả hai ht.get Calles nên trả lại kết quả tương tự, kể từ khi hai mảng đều bình đẳng, nhưng họ không. Đây là kết quả từ việc chạy mã:
the result from ht.get(test1)
null
the result from ht.get(test0)
foo
Tôi có thiếu gì ở đây hoặc không thể sử dụng int [] làm khóa trong hastable?
+1 câu trả lời hoàn hảo –
Danh sách (thường cũng có thể thay đổi). Sự khác biệt quan trọng là ['List.equals'] (http://download.oracle.com/javase/6/docs/api/java/util/List.html#equals%28java.lang.Object%29) và ['List.hashCode'] (http://download.oracle.com/javase/6/docs/api/java/util/List.html#hashCode%28%29) được yêu cầu sử dụng bình đẳng nguyên tố. –
@Matthew, điểm tốt.Đã loại bỏ đề cập đến tính đột biến. –