ArrayList与LinkedList对比

ArrayList:
1.ArrayList以数组方式实现,节约空间,但数组有容量限制,当超出限制时,他会自动增加50%容量,用System.arraycopy()复制到新的数组。
2.按数组下标访问元素-----get()/set()的性能很高。
3.但如果按下标插入,删除元素,则要用System.arraycopy()来移动部分受影响的元素,性能会变差。

LinkedList:
1.以双向链表实现,链表无容量控制,但双向链表本身使用了更多的空间,也需要额外的链表指针操作。
2.按下标访问元素-----get()/set()要遍历链表将指针移动到位,性能略低。
3.插入,删除元素时只需修改该元素前后节点的指针即可,但还是要遍历部分链表的指针才能移动到下标所指的位置。

猜你喜欢

转载自blog.csdn.net/weixin_43560292/article/details/86086857