Масиви чудово підходять для сценаріїв, де потрібен швидкий довільний доступ і сховище фіксованого розміру хеш-таблиці більше підходять для сценаріїв, де потрібен швидкий доступ до елементів за ключем і використання пам'яті не є таким серйозним занепокоєнням.
Для найменшого розміру в 10 000 елементів HashMap працює в 58,2 рази швидше, ніж ArrayList.. Для найбільшого розміру в 990 000 елементів HashMap працює в 3972 рази швидше!
Відповідь полягає в перевагах продуктивності елементів пошуку. HashMap дуже ефективно перевіряє, чи існує ключ, або отримує значення на основі ключа. Ці операції в середньому займають O(1). Додавання та видалення елементів із HashMap на основі ключа займає O(1) постійного часу.
HashMap, швидше за все, потребуватиме більше пам’яті, навіть якщо ви зберігаєте лише кілька елементів. До речі, обсяг пам’яті не повинен викликати занепокоєння, оскільки структура даних вам знадобиться лише до тих пір, поки вона потрібна для підрахунку.
Масиви призначені для простіших статичних структур, де довжина може бути відома під час ініціалізації. HashMaps — це словники, для яких, коли ваш індекс не є цілим числом, індекс отримується шляхом виклику хеш-методу об’єктів, які ви використовуєте як ключі.
Хеш-карти використовують хеш-код ключа для прямого доступу до відра, де зберігається запис. Це доступ O(1). Якщо через однаковий чи схожий хеш-код у цьому сегменті є більше ніж один елемент, у вас є ще кілька перевірок, але це все одно набагато швидше, ніж переглядати список і шукати елемент.