Arrays.asList
- только этот будет O(1)
.Под капотом создается новый ArrayList
с данным массивом - независимо от размера массива.
Или проще, одно и то же действие происходит постоянно, независимо от размера массива = он постоянный,
Когда вы делаете new ArrayList(Arrays.asList...)
, внутренне он копирует данные:
....
elementData = Arrays.copyOf(elementData, size, Object[].class);
, что в конечном итоге вызовет System::arrayCopy
;и это где это становится сложным.В общем, это можно рассматривать как O(n)
, но, поскольку это собственный метод, он может быть реализован в виде одной инструкции CPU;таким образом, став O(1)
.
, я бы все равно пошел с O(n)
в качестве ответа.