Java doc says तक पहुंचने पर नहीं बढ़ाई - हैश तालिका में प्रविष्टियों की संख्या लोड फैक्टर और वर्तमान क्षमता के उत्पाद से अधिक हो गया है, हैश तालिकाHashMap क्षमता भी सीमा
rehashed है नीचे कार्यक्रम में -
HashMap<Integer, String> map = new HashMap<Integer, String>();
int i = 1;
while(i<16) {
map.put(i, new Integer(i).toString());
i++;
}
कुंजी, के प्रकार के पूर्णांक है 15 वीं तत्व HashMap क्षमता को 13 वीं की प्रविष्टि पर 16 के रूप में बनी हुई है और सीमा 12 के रूप में एक ही रहता है, क्यों? HashMap<String, String>
या एक कस्टम वर्ग - -
args String[0] (id=16)
map HashMap<K,V> (id=19)
entrySet null
hashSeed 0
KeySet null
loadFactor 0.75
modCount 13
size 13
table HashMap$Entry<K,V>[16] (id=25)
threshold 12
values null
i 14
[null, 1=1, 2=2, 3=3, 4=4, 5=5, 6=6, 7=7, 8=8, 9=9, 10=10, 11=11, 12=12, 13=13, null, null]
प्रकार स्ट्रिंग की कुंजी के साथ HashMap -
कोड पढ़ें। यह समझाएगा। यह संभव है कि कार्यान्वयन में कुछ बदल गया है जिसका अर्थ है कि जावाडोक अब * बिल्कुल सही नहीं है। लेकिन यह दिलचस्प नहीं है (आईएमओ) क्योंकि कोई समझदार प्रोग्रामर कभी भी हैशप आकार बदलने के सटीक व्यवहार पर निर्भर नहीं होगा। –
सिर्फ यह जानने का प्रयास कर रहा है कि एंटीजर के रूप में कुंजी रखने के लिए कार्यान्वयन व्यवहार अलग क्यों है। यदि मैं हैश मैप <स्ट्रिंग, स्ट्रिंग> का प्रयास करता हूं तो यह 13 वें प्रविष्टि – anmolmore
पर मानचित्र का आकार बदलता है जो जावा संस्करण (अपडेट सहित)? – m3th0dman