Sobes.tech
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);