java remove(index)_java – 针对remove(int index)优化的List实现

我想使用List< E>但我唯一要使用的方法是

E remove(int index)

我对此方法的返回值感兴趣(E已删除).我从不需要删除方法(E e).

我唯一需要的构造函数是一个收集.

如果List是一个ArrayList,则remove(int index)方法的时间复杂度为O(n),因为您必须在删除的元素向左移动一个元素之后将元素混洗.

如果List是LinkedList,则remove(int index)方法也具有时间复杂度O(n),因为尽管在元素上更改链接需要O(1)时间,但您必须通过遍历名单.

如果我只对使用remove(int index)方法感兴趣,是否可以编写List< E>的实现.它是否针对此方法进行了优化,以便remove(int index)方法的时间复杂度优于O(n)?

解决方法:

我建议使用apache的commons-collections中的TreeList.

它被优化了

This list implementation utilises a tree structure internally to ensure that all insertions and removals are O(log n).

标签:java,time-complexity,list

来源: https://codeday.me/bug/20190623/1275282.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值