Junior — Middle
Ի՞նչ է նվազագույն քանակը տարրերի, որոնք անհրաժեշտ են HashMap- ը ավտոմատ ընդլայնումից զուրկ սկսելու համար։
sobes.tech AI
Պատասխան AI-ից
Java-յում HashMap ունի սկզբնական ծավալ (capacity) և բեռի գործակից (load factor), որոնք ըստ նախնական կարգավորումների համապատասխանաբար 16 և 0.75 են: Ավտոմատ ընդլայնումը տեղի է ունենում, երբ տարրերի քանակը գերազանցում է capacity * load factor-ը:
Որպեսզի կանխել ավտոմատ ընդլայնումը սկզբնականացման ժամանակ, անհրաժեշտ է սահմանել այնպիսի capacity, որը կարող է տեղավորել անհրաժեշտ տարրերի քանակը՝ չանցնելով սահմանը:
HashMap-ը առանց ընդլայնման սկզբնականացնել հնարավոր է, եթե initialCapacity >= n / loadFactor:
Օրինակ՝
int expectedElements = 10;
float loadFactor = 0.75f;
int initialCapacity = (int) Math.ceil(expectedElements / loadFactor);
HashMap<String, String> map = new HashMap<>(initialCapacity, loadFactor);