HashMap — массив бакетов (Node[]). put(): вычисляется hash ключа, определяется индекс через hash & (capacity-1). При коллизии — связный список в бакете, с Java 8 при 8+ элементах переходит в красно-чёрное дерево. Resize при load factor 0.75 — массив удваивается. get(): hash → индекс → поиск по equals() в бакете. Ключ null хранится в бакете 0. Initial capacity 16. Важно: хороший hashCode() критичен для производительности — плохой хеш = все в одном бакете = O(n).
Как устроен HashMap изнутри?
Middle
457 просмотровAFK Offer AI
Как написать тест на JUnit 5?