美文网首页
ArrayList 和 linkedList 异同

ArrayList 和 linkedList 异同

作者: w4irdo | 来源:发表于2019-07-12 09:32 被阅读0次
    1. 是否保证线程安全: ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全。
    2. 底层数据结构: ArrayList 底层使用的是 Object 数组;LinkedList 底层使用的是双向链表数据结构。
    3. 插入和删除是否受元素位置的影响:
      • ArrayList 采用数组存储,所以插入和删除元素的时间复杂度受元素位置影响比如:执行add(E e)方法的时候,ArrayList 会默认将元素追加到列表的末尾,时间复杂度为 O(1);插入和删除元素时,为 O(n),在执行这两种方法时,在指定位置之后的元素都要做整体向前和向后的移动。
      • LinkedList 采用链表存储,所以插入和删除元素时间复杂度不受元素位置的影响,都是近似 O(1)。
    4. 是否支持快速随机访问: LinkedList 不支持高效的随即元素访问,而 ArrayList 支持。快速随机访问就是通过元素的序号快速获取元素对象(对应于get(int index)方法)。
    5. 内存空间占用: ArrayList 空间浪费在 list 列表的结尾会预留一定的容量空间。而 LinkedList 的空间花费在每一个元素要消耗比 ArrayList 更多的空间(前驱和后继以及数据)。

    相关文章

      网友评论

          本文标题:ArrayList 和 linkedList 异同

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