Если сложность времени LinkedHashMap такая же, как сложность HashMap, зачем нам HashMap?
Не стоит путать сложность с производительностью. Два алгоритма могут иметь одинаковую сложность, но один может последовательно работать лучше, чем другой.
Помните, что f(N) is O(N)
означает, что:
C1*N <= limit(f(N), N -> infinity) <= C2*N
, где C1
и C2
- строго положительные постоянные. Сложность ничего не говорит о том, насколько малы или велики значения C
. Для двух разных алгоритмов константы, скорее всего, будут отличаться .
(И помните, что сложность big-O связана с поведением / производительностью, поскольку N
становится очень большой. Она ничего не говорит о поведении / производительности для небольших значений N
.)
Сказав это, разница в производительности между операциями HashMap
и LinkedHashMap
в эквивалентных сценариях использования относительно невелика. Зачастую дополнительные накладные расходы памяти, которые более актуальны.