में कुंजी के रूप में int सरणी के साथ हैशटेबल मैं जावा में एक हैशटेबल बनाने की कोशिश कर रहा हूं जहां कुंजी int [] है, लेकिन यह काम नहीं कर रहा है। मैं एक छोटे से परीक्षण कार्यक्रम मेरी समस्या को दिखाने के लिए बना दिया है:जावा
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
मैं यहाँ कुछ कमी कर रहा हूँ या यह सिर्फ उपयोग करने के लिए असंभव है पूर्णांक [] एक hastable में कुंजी के रूप में: यहाँ कोड चलने से परिणाम है?
+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) तत्व-वार समानता का उपयोग करने की आवश्यकता है। –
@ मैथ्यू, अच्छा बिंदु।उत्परिवर्तन का उल्लेख हटा दिया गया। –