Как указано @Andronicus, вы можете избавиться от потоков и использовать чистые массивы, даже не списки. Но опять же, при вашем подходе сложность времени не O(n)
, а O(m)
, где m
- максимальный элемент в вашем массиве. Также, как упоминалось в комментариях, ваш подход не будет работать для отрицательных значений. В таких случаях HashMap
является вашей лучшей ставкой, и большую часть времени гарантирует O(1)
вставки / выборки для вычисления хешей для простых типов, таких как целые числа.