List

List(列表)

List的元素以现行方式存储,可以存放重复对象,List主要有两个实现类

  1. ArrayList:长度可变的数组,可以对元素进行随机访问,插入删除元素速度慢,JDK8中的ArrayList扩容是通过grow()方法里使用语句newCapacity = oldCapacity + (oldCapacity >> 1)(即1.5倍扩容)计算容量,然后调用Arrays.copyof()方法进行对原数组进行复制。
  2. LinkedList:次用链表数据结构,插入和删除速度快,但访问速度慢。

ArrayListLinkedList的区别

  1. ArrayList实现了基于动态数组的数据结构,LinkedList基于链表的数据结构
  2. 随机访问的get和set,ArrayList优于LinkedList,因为LinkedList要移动指针
  3. 新增和删除操作add和remove,LinkedList优于ArrayList,因为ArrayList要移动数据
  4. 同步性

ArrayListVector的区别

  1. 同步性

Vector方法之间是线程同步的(线程安全),ArrayList是线程不同步(线程不安全),单线程情况下使用ArrayList,效率高一点,多线程使用Vector,线程安全

   2.数据增长

扩容时Vector默认增长为原来的两倍,可以设置增长的空间大小

ArrayList没有提供设置增长空间的方法,源代码是增长为原来的1.5倍

ArrayArrayList的区别

Aarray可以包含基本数据类型和引用类型,ArrayList只能包含引用类型

ArrayList是基于数组实现的,可以通过内部方法自动调整容量,Array大小不可调整

ArrayList是List接口实现类,比Array支持更多的方法和特性

posted on 2020-05-14 18:08  Wang丶  阅读(145)  评论(0)    收藏  举报

导航