Java集合List的实现类

List的实现类有下面几个:

  1. ArrayList 数据结构是动态数组
  2. Vector 数据结构是动态数组
  3. LinkedList 双向链表

 

Array和ArrayList有什么区别?

  1. Array可以容纳基本数据类型和对象,ArrayList只能容纳对象
  2. Array大小固定,声明数组时候指定大小,不可变;ArrayList指定大小,可以动态扩容。

 

ArrayList和Vector有什么区别?

  1. Vector是线程安全的,从源码中可以看出,Vector的许多方法上有synchronized,线程同步,执行效率低。
  2. 两个都是采用的线性连续空间存储元素,但是当空间不够用的时候,两个类的增长方式是不同的。
  3. Vector可以指定增长因子,但是ArrayList是不可以的。

 

ArrayList和LinkedList有什么区别?

  1. ArrayList的数据结构是基于动态数组的,数据存储是线性连续的,因此一旦存储完毕,数据的位置是固定的,查询效率比较快。因为地址是连续的在插入/删除数据的时候需要重新移动数据,所以插入和删除的效率是低的。
  2. LinkedList采用的是双向链表,地址是任意的,因此数据在存储的时候是不需要连续的。所以在查询的时候需要移动指针,查询效率比较慢。再插入和删除的时候不要重新移动数据,因此效率比较高。LinkedList适用于头尾操作或插入指定位置的场景。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值