美文网首页
ArrayList和LinkedList区别

ArrayList和LinkedList区别

作者: pkxutao | 来源:发表于2019-04-09 17:21 被阅读0次

    ArrayList和LinkedList都是经常使用的集合工具,但真正原理却千差万别。
    本质区别就是: ArrayList是数组结构,LinkedList是链表结构。
    基于本质的区别,可以总结ArrayList和LinkedList的特点和不同点了。
    1、增加元素到列表末尾时,当元素个数超过数组限制,ArrayList要进行数组扩容,这对性能有一定影响。而本质是链表的LinkedList则不需要进行扩容。
    2、增加元素到任意位置时,本质是数组的ArrayList需要移动后面的元素重新排列,开销也会随着添加元素位置越靠前而越大,而本质是链表的LinkedList则只要改变前后的指向就行,性能开销远远小于ArrayList.
    3、删除任意元素同上。
    4、遍历性能对比:
    构造一个拥有100万数据的ArrayList和等价的LinkedList,使用以上代码进行测试,测试结果的相对耗时如下表所示:


    image.png

    LinkedList因为是链表实现,所以在迭代遍历中占有很明显的优势,而在通过数组下标的遍历中,链表需要通过指针计算出下标来遍历,所以性能非常慢,而ArrayList因为是数组实现,通过数组下标遍历速度最快。

    参考资料: https://www.cnblogs.com/sierrajuan/p/3639353.html

    相关文章

      网友评论

          本文标题:ArrayList和LinkedList区别

          本文链接:https://www.haomeiwen.com/subject/epjiiqtx.html