1. ArrayListLinkedList的相同点和不同点
  2.  
  3. 共同点:都是单列集合中List接口的实现类。存取有序,有索引,可重复
  4. 不同点:
  5. 1.底层实现不同:
  6. ArrayList底层实现是数组,LinkedList底层是双向链表,有头尾指针。
  7.  
  8. 2.ArrayList查询快,增删慢。
  9. 查询快:数组随机访问,通过数组地址和元素索引计算出元素地址,进行访问。
  10. 增删慢:增删不在尾部,都需要移动元素,如果数组容量不足,还需要扩容。(扩容非常影响效率)
  11. 扩容:
  12. 1.分配一个原数组1.5倍大小的新数组
  13. 2.将原数组的内容拷贝到新数组
  14.  
  15. 3.LinkedList查询慢,增删快
  16. 查询慢:从头或尾依次寻址。
  17. 增删快:只需要修改几个指针的指向。
  18.  
  19. 应用场景:
  20. 业务中增删频繁,就用LinkedList
  21. 业务中主要是查询,就用ArrayList
  22.  
  23. LinkedList索引查询的时候,是从头开始往后找,还是从尾开始往前找?
  24. 答:会先做一个判断,判断要查找的元素距离头部近还是尾部近,距离哪个近就从哪边找。

ArrayList和LinkedList的共同点和区别的更多相关文章

  1. 集合中list、ArrayList、LinkedList、Vector的区别、Collection接口的共性方法以及数据结构的总结

    List (链表|线性表) 特点: 接口,可存放重复元素,元素存取是有序的,允许在指定位置插入元素,并通过索引来访问元素 1.创建一个用指定可视行数初始化的新滚动列表.默认情况下,不允许进行多项选择. ...

  2. java中List接口的实现类 ArrayList,LinkedList,Vector 的区别 list实现类源码分析

    java面试中经常被问到list常用的类以及内部实现机制,平时开发也经常用到list集合类,因此做一个源码级别的分析和比较之间的差异. 首先看一下List接口的的继承关系: list接口继承Colle ...

  3. ArrayList和LinkedList 的联系和区别

    ArrayList和LinkedList 的联系和区别 1.联系: 都实现了List接口 有序 不唯一(可重复) 2.区别 ArrayList LinkedList

  4. java的List接口的实现类 ArrayList,LinkedList,Vector 的区别

    Java的List接口有3个实现类,分别是ArrayList.LinkedList.Vector,他们用于存放多个元素,维护元素的次序,而且允许元素重复. 3个具体实现类的区别如下: 1. Array ...

  5. ArrayList 和 LinkedList 的实现与区别

    (转载请标明出处) 1.ArrayLis t的实现 2.LinkedLis t的实现 3.ArrayList 和 LinkedList 的区别 ArrayList 的实现: 1.MyArrayList ...

  6. 数组Array和列表集合ArrayList、LinkedList和Vector的区别

    一.ArrayList和Vector的区别 ArrayList与Vector主要从以下方面来说. 1.同步性: Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同 ...

  7. 描述一下ArrayList和LinkedList各自实现和区别

    ArrayList,LinkedList,Vestor这三个类都实现了java.util.List接口,但它们有各自不同的特性,主要如下: 一.同步性 ArrayList,LinkedList是不同步 ...

  8. java中ArrayList、LinkedList、Vector的区别

    ArrayList.LinkedList.Vector这三个类都实现了List接口. ArrayList是一个可以处理变长数组的类型,可以存放任意类型的对象.ArrayList的所有方法都是默认在单一 ...

  9. ArrayList、LinkedList、Vector的区别

    Arraylist和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加插入元素,都允许直接序号索引元素,但是插入数据要涉及到数组元素移动等内存操作,所以插入数据慢,查找有下标, ...

随机推荐

  1. uva 11468 - Substring(AC自己主动机+概率)

    题目链接:uva 11468 - Substring 题目大意:给出一些字符和各自字符相应的选择概率.随机选择L次后得到一个长度为L的字符串,要求该字符串不包括随意一个子串的概率. 解题思路:构造AC ...

  2. GIF Movie Gear逆向实战+注册代码+补丁

    GIF Movie Gear逆向实战+注册代码+补丁 准备 我是在windows 8.1 x64上进行的操作.有不足之处,还望大虾指出. 获取资源 网站下载:http://www.gamani.com ...

  3. VUE清除组件内部定时器

    定时器如果不手动清除,只会在离开当前页面或者F5刷新后才会清除.由于vue项目是SPA应用,离开当前组件后并不会清除定时器,所以需要我们手动去清除定时器.但当我们将清除定时器clearInterval ...

  4. [PHP]PDO调用存储过程

    1. 数据库中已创建存储过程user_logon_check, PHP调用示例如下, <?php $dsn = 'mssql:dbname=MyDbName;host=localhost'; $ ...

  5. 如何在外部采用AES-128对HLS的TS流进行加密

    http://www.wowza.cn/hls/howToSecureHlsByAes128External

  6. MRP 中的数据元素

    20170227 MRP 元素是个什么东西? 系统显示的是MRP 元素缩写,程序用的是Code SimReq 简单需求AR 相关预订 OrdRes 订单需求BA 采购申请 PurRqs 采购申请BB ...

  7. pyenv 安装本地版本

    最近在用pyenv安装python的时候发现官网特别慢,经常出现拒绝访问的情况.看了一些解决方法,发现可以使用本地的python源码进行安装,让pyenv从本地下载就可以了~步骤如下: 首先从官网下载 ...

  8. centos 网络连接查看

    安装iftop. 这个得先安装epel #yum install epel-replease -y #yum install iftop -y #iftop

  9. 取clientdataset detal中的 更新数据, 将detal 转 数据库脚本sql

    转自永南博客,更改update 脚本只取变化字段,更改排除blob与数组字段,这两个类型会报错 function vartosql(value: Variant): wideString; var  ...

  10. 修改RedHat的系统显示时间

    1.修改日期 date -s 12/21/2012 2.修改时间 date -s 15:14:00 3.检查硬件(CMOS)时间 clock -r 4.将系统时间写入CMOS clock -w 切记四 ...