2010-08-25 18 views
14

अगर मैं 10 का एक आरंभिक क्षमता और 0.5 तो हर 5 तत्वों HashSet बढ़ जाएगी जोड़ा या पहले HashSet के एक लोड फैक्टर 10 तत्वों की वृद्धि हुई है के साथ और 15 में 20 पर एक के बाद HashSet का उपयोग एटीसी। क्षमता में वृद्धि होगी?HashSet लोड फैक्टर

उत्तर

3

यह दूसरा मामला है। हैशसेट और हैशमैप दोनों का लोडफैक्टर एक सापेक्ष कारक है।

19

भार कारक यह माप है कि इसकी क्षमता स्वचालित रूप से बढ़ने से पहले हैशसेट को कितना पूरा करने की अनुमति है। जब हैश तालिका में प्रविष्टियों की संख्या लोड कारक और वर्तमान क्षमता के उत्पाद से अधिक है, हैश तालिका को फिर से बनाया गया है (यानी, आंतरिक डेटा संरचनाओं का पुनर्निर्माण किया जाता है) ताकि हैश तालिका में बाल्टी की संख्या लगभग दोगुनी हो।

source

+0

अच्छा हो जाता है !!! मैं थोड़ी देर के लिए इस व्याख्या की तलाश में था। तो डिफ़ॉल्ट 2/3 का अर्थ है कि 16 के प्रारंभिक आकार के साथ जब मैं 12 भरता हूं, तो यह अंतरिक्ष को बढ़ा देगा। – ha9u63ar

+0

जावा 7 और 8 के लिए, हैशसेट के लिए डिफ़ॉल्ट लोड कारक 0.75 है। – Kent

2

HashMap की डिफ़ॉल्ट आरंभिक क्षमता लेता है 16 है और लोड फैक्टर 0.75f ​​है (अर्थात वर्तमान मानचित्र आकार का 75%)। भार कारक दर्शाता है कि हैश मैप क्षमता को किस स्तर पर दोगुना किया जाना चाहिए।

क्षमता और लोड फैक्टर का उदाहरण उत्पाद के लिए

के रूप में 16 * 0.75 = 12. यह प्रतिनिधित्व करता है कि 12 वीं कुंजी भंडारण के बाद - HashMap में मूल्य जोड़ी, अपनी क्षमता 32.

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