Pau*_*ton 5 java list time-complexity
我想使用一个,List<E>
但我唯一要使用的方法是
E remove(int index)
Run Code Online (Sandbox Code Playgroud)
我对此方法(已E
删除)的返回值感兴趣。我永远不需要这种方法remove(E e)
。
我唯一需要的构造函数是一个Collection<? extends E>
。
如果List
为ArrayList
,则该remove(int index)
方法具有时间复杂度O(n),因为您必须在将删除的元素向左移一个位置之后对元素进行随机排序。
如果List
为a LinkedList
,则该remove(int index)
方法也具有时间复杂度O(n),因为尽管花费O(1)的时间来更改元素上的链接,但是您必须index
通过遍历来找到索引处的元素List
。
如果我只对使用该remove(int index)
方法感兴趣,是否可以编写List<E>
针对该方法优化的实现,以使该remove(int index)
方法的时间复杂度优于O(n)?