मैं इस तरह एक वर्ग निर्माता है:बाइटबफर हैंश कोड क्यों हैं?
public JavoImageCorrectedDataHeader()
{
ByteBuffer buffer = ByteBuffer.allocate(this.size());
buffer.order(java.nio.ByteOrder.LITTLE_ENDIAN);
setByteBuffer(buffer, 0);
System.out.println("buffer.hasCode=" + buffer.hashCode());
}
मेरी अन्य वर्गों में, मैं
new JavoImageCorrectedDataHeader()
तो का उपयोग करके अलग-अलग स्थानों और समय में ऊपर वर्ग के कई उदाहरण बनाने के लिए, मैं उम्मीद यह प्रिंट होगा उनके लिए अलग हैशकोड बाहर। लेकिन मैं वास्तव में देखने के लिए एक ही hashCode प्रिंट आउट है:
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
मैं कैसे ByteBuffer का उपयोग करने के बारे में कुछ याद आती है चाहिए।
http://docs.oracle.com/javase/1.4.2/docs/api/java/nio/ByteBuffer.html#hashCode() - 'ByteBuffer.hashCode' बफर में शेष सामग्री पर निर्भर है। – Erik
भले ही दो ऑब्जेक्ट्स में 'हैशकोड' समान है, जो कि उनकी समानता या समानता के बारे में कुछ भी नहीं है। –
@Erik कृपया जावा 6 या 7 के बजाय पुरानी प्रलेखन का संदर्भ न दें। यह [बाइटबफर] का वास्तविक दस्तावेज है (http://docs.oracle.com/javase/6/docs/api/java/nio/ ByteBuffer.html) –