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适用于头尾操作或插入指定位置的场景。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章