2012-08-09 73 views
16

का हैशकोड एक आदिम प्रकार का हैशकोड क्या है, जैसे int?एक int

उदाहरण के लिए, मान लें कि num एक इंटरगर था।

int hasCode = 0; 

if (num != 0) { 
    hasCode = hasCode + num.hashCode(); 
} 
+1

आप पुरातन पर तरीकों फोन नहीं कर सकते हैं। हालांकि इसे ऑटोबॉक्साइड किया जा सकता है, और उसके बाद 'इंटेगर' (या समान) के रूप में आपको 'Integer.hashCode' मिलेगा। –

+0

उस स्थिति में, हम और अधिक सहायक हो सकते हैं और रैपर कक्षाओं के लिए हैशकोड क्या होगा। –

+0

एक पूर्णांक का हैशकोड पूर्णांक है। –

उत्तर

30

एक int की hashCode के लिए सबसे स्वाभाविक पसंद int ही उपयोग करने के लिए है। long के hashCode के लिए एक बेहतर सवाल यह है कि यह int-आकार वाले हैशकोड में फिट नहीं है। — और सभी hashCode-संबंधित प्रश्न — के लिए आपका सबसे अच्छा स्रोत Effective Java होगा।

+11

मुझे 'लांग' हैश कोड के बारे में उत्सुकता मिली और मैंने इसे देखा है, यह है: '(int) (मूल्य^(मूल्य >>> 32));' –

+0

@platzhirsch हां, इस तरह यह 'java.lang' में लागू किया गया है लोंग', और यह प्रभावी जावा की सिफारिश करता है। –

+0

@ मार्कोटोपॉलिक वास्तव में मुझे लगता है [यह] (http://download.java.net/openjdk/jdk7/) शायद अधिक उपयोगी है। – oldrinb

8

आदिम प्रकार int उपलब्ध के लिए कोई hashCode() विधि।

Integer आवरण वर्ग प्रकार है और hashcode() रिटर्न एक int

33

Integer.class स्रोत कोड से लिया:

/** 
* Returns a hash code for this {@code Integer}. 
* 
* @return a hash code value for this object, equal to the 
*   primitive {@code int} value represented by this 
*   {@code Integer} object. 
*/ 
public int hashCode() { 
    return value; 
} 

कहाँ value पूर्णांक का मूल्य है।

+0

नोट: यह सही है लेकिन सवाल प्राचीन int के लिए था और इंटीजर ऑब्जेक्ट होल्डिंग 'इंटीजर' मान – MANU

1

java.lang.Integer.hashCode() विधि int के आदिम मूल्य के लिए हैश कोड मान देता है लेकिन Integer ऑब्जेक्ट के रूप में दर्शाया गया है।

/** 
* Returns a hash code value for an Integer, 
* equal to the primitive int value it represents. 
*/ 
public class IntegerDemo { 

    public static void main(String[] args){ 
     Integer i = new Integer("20"); 
     System.out.println("Value = " + i.hashCode()); 
    } 

}` 

परिणाम:

मान = 20

स्रोत लिंक: http://www.tutorialspoint.com/java/lang/integer_hashcode.htm

+1

नहीं था, इसके लिए अंतराल मध्यस्थ चर वास्तव में आवश्यक नहीं है कोड के रूप में यह केवल एक बार इस्तेमाल किया जा रहा है। –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^