Java сравнение скорости между HashMap и ArrayList - PullRequest
0 голосов
/ 10 февраля 2020

Интересно, есть ли сравнение между поисковыми элементами в Hashmap и ArrayList? Случай, с которым я столкнулся, выглядит следующим образом: у меня будет небольшое количество элементов (обычно 4-6, вероятно, до 10). У меня есть целочисленный идентификатор такого элемента, и я получу много вызовов, которые будут искать элементы с использованием идентификатора и выполнять какой-либо метод для этого элемента. Это выглядит как хороший пример использования hashmap, но я начал задумываться, не будет ли лучше линейная коллекция, такая как ArrayList. Например из-за кеша процессора. А также, чтобы использовать поиск по карте, мне нужно автобокс для создания Integer из примитива. Вопрос для этого случая: лучше ли выполнять линейный поиск и сравнение примитивных целочисленных значений или, скорее, придерживаться hashmap?

1 Ответ

0 голосов
/ 10 февраля 2020

Если ваши идентификаторы не основаны на индексах, ArrayList # get будет O(n) (вам нужно будет перебирать элементы), в то время как HashMap # get будет O(1).

...