首页 > 其他分享 >面经-LinkedList与ArrayList比较

面经-LinkedList与ArrayList比较

时间:2022-08-22 13:58:14浏览次数:85  
标签:缓存 LinkedList ArrayList 面经 链表 内存 性能

ArrayList:

1.基于数组,需要连续内存

2.随机访问快(根据下标访问)。(按照内容查询时ArrayList与LinkedList速率基本相同)

3.尾部插入、删除性能好,其他部分插入、删除都会移动数据,因此性能低。

4.可以利用cpu缓存,一定程度上提升读写性能。

(局部性原理:读到一个元素后,会将一部分相邻的数据全部存入缓存中。)

 

LinkedList:

1.基于双向链表,无须连续内存

2.随机访问慢(要沿着链表遍历)

3.头尾插入删除性能高

4.占用内存多,链表不能很好地配合cpu缓存提升性能。

5.占用空间大。LinkedList每个节点都存储了该节点的元素、上一个指针和下一个指针。

   

标签:缓存,LinkedList,ArrayList,面经,链表,内存,性能
From: https://www.cnblogs.com/lysboke/p/16612550.html

相关文章

  • 面经-ArrayList扩容规则
    如果调用无参arrayList构造方法,则初始长度为0;如果构造带参的构造方法,则初始容量为指定长度。 1.调用add()方法1.第一次扩容为10(从0到9)。2.后续扩容都是前一次的1.5倍......
  • 9.Java的LinkedList/Deque相关方法
    Java的LinkedList/Deque中add/offer/push,remove/pop/poll的区别它们来自不同的接口add/remove源自集合,所以添加到队尾,从队头删除;offer/poll源自队列(先进先出=>尾进......
  • Random类、ArrayList类
    Random类什么是Random类此类的实例用于生成伪随机数。例如,以下代码使用户能够得到一个随机数:Randomr=newRandom();inti=r.nextInt();Random使用步骤......
  • 飞腾面经问题回答
    1.C语言中volatile关键字的作用关键字是C语言的词汇,由于编译器不具备真正的智能,所以你必须用编译器能理解的术语表示你的意图。开发者告诉编译器该变量是易变的,无非就是......
  • 【java面试题】ArrayList和LinkedList的区别
    【java面试题】ArrayList和LinkedList的区别 ArrayList和LinkedList都实现了List接口,它们有一下的不同点:ArrayList是基于索引的数据接口,它的底层是数组,它可以以O(1)时......
  • 集合框架2----List实现类(ArrayList、vector、LinkedList)
    List实现类   ArrayList:###源码分析:DEFAULT_CAPACITY=10;默认容量(注意:如果没有向集合中添加任何元素,容量为0,添加一个元素之后,容量为10),每次扩容大小是原来......