ArrayList和LinkedList区别

ArrayList和LinkedList区别

  • ArrayList是基于索引(index)的数据结构,直接使用索引进行查找和读取数据,时间复杂度是O(1),但是要删除元素的开销却很大,数组内部需要重新组排。
  • LinkedList 在插入和删除方面效率更高,因为在插入和删除操作中LinkedList不需要像ArrayList重新组排,在元素装满时候也不需要将当前数组重新装入另外一个新的数组中,而且ArrayList在插入的数据不是在数组尾部的时候还需要更新索引,ArrayList 插入和删除的时间复杂度为O(n),而LinkedList 插入和删除操作的时间复杂度仅仅为O(1)
  • LinkedList 存储相同的数据占用的内存比ArrayList更大,因为LinkedList存储时必须额外存储前后结点。
  • 应用不会随机访问数据时,因为如果你需要 访问LinkedList 中的第 n 个元素的时候,你需要从第一个元素顺序数到第 n 个数据,然后读取数据,LinkedList 对随机访问的时间复杂度为O(n)
  • 应用更多是插入和删除元素的情况,更少的读取数据。因为插入和删除元素不涉及重排数据,所以LinkedList 要比 ArrayList 要快。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值