List

125 阅读1分钟

List接口介绍

接口特点

有序 可重复

  • 有序

    元素存入集合的顺序和去取出集合的顺序一致。List当中的每个元素都有索引标记。可以根据元素的索引标记访问元素,从而精确控制这些元素。

  • 可重复

    允许加入重复的元素。也就是说,List通常允许满足e1.equals(e2) 的元素重复加入容器。

常用方法

image.png

ArrayList容器的基本使用

Array是List接口的实现类。是List存储特征的具体实现。

ArrayList的底层使用数组实现的存储。

特点:查询效率高,增删效率低,线程不安全

ArrayList的并集,交集,差集
  • 并集 a.addAll(b);
  • 交集 a1.retainAll(b1);
  • 差集 a2.removeAll(b2);
ArrayList源码分析

具体见文档

Vector容器的基本使用

底层是使用数组实现的,相关方法都做了同步检查,所以,线程安全,效率低

Vector的使用

与ArrayList相同

LinkedList容器介绍

底层采用双向链表实现的存储。特点:查询效率低,增删改效率高,线程不安全

List实现类的选用规则
  1. 需要线程安全时,用Vector。
  2. 不存在线程安全问题时,并且查找较多用ArrayList(一般使用它)
  3. 不存在线程安全问题时,增加或删除元素较多用LinkedList
LinkedList容器的使用(List标准)

LinkedList实现了List接口,所以LinkedList是具备List的存储特征的(有序,元素有重复)。

LinkedList容器的使用(非List标准)

image.png

LinkedList的源码分析

具体见文档