1.ArrayList是List接口下的大小可变数组的实现 所以arraylist的底层是数组
而且此实现不是同步的 说明是多线程 程序速度快
List集合中有的add get set remove 方法arraylist集合中都有
查询快增删慢
如果要添加一个元素 会先创建一个数组 然后把数组长度是新创建数组长度加一 然后把原数组的数据在放在新数组中来,所以查询快(数组的地址连续的) 增删慢(因为没添加一个元素都要新建数组)
所以查询多用ArrayList
2.linkedList集合
linkedList集合 是List集合接口的链表实现 (注意ArrayList 和linkedList 都是implements List() 是接口实现类)
查询慢增删快 也是多线程速度比较快
因为链表的首尾位比较方便 所以有很多方法是直接操作首尾位两个位置的
java.util.linkedList集合 implements实现了 List接口 linkedList集合的特点: 1.底层是一个链表结构 查询慢增删快 2.里面包含了大量操作首位位元素的方法 注意:使用linkedList特有的方法不能使用多态 因为多态不能使用子类或实现类特有的方法 要向下转型才能有 除了collection 和 list中的方法还有这些特有的方法 public void addFirst(E e); 将指定元素插入列表的开头 public void addLast(E e); 将指定元素插入列表的结尾 public E getFirst(); 返回此列表的第一个元素 public E getLats();返回此列表的最后一个元素 public E removeFirst();移除并返回此列表的第一个元素 public E removeLast();移除并返回此列表的最后一个元素元素 public E pop();从此列表所表示的堆栈处弹出一个元素 此方法相当于removeFirst(); public void push(E e);将元素推入此列表所表示的堆栈 此方法等效于addFirst(); public boolean isEmpty();如果列表不包含元素 则返回true
3.Vector集合
了解即可
Vector底层也是数组
单线程速度慢 渐渐被ArrayList取代



