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);