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