1.arraylist
基于array所以方便查找,但是不方便添加和删除对象。其中的元素是有序的,允许重复元素。线程是不同步的,是线程不安全的。在元素填满容器的时候默认扩容增加原来的一半,并且不可以自定义扩容的大小。
2.linkedlist
基于链表,方便添加删除元素,但是并不适合查找元素,因为会从链表的一端查询到另外一端,效率低。其中的元素是无序的,但是允许重复和允许为空。不允许同步访问,是线程不安全的。
3.vector
也是基于数组的容器,所以也是方便查找,而不便于添加和删除元素。其中也是允许重复元素和空的。可以使用synchronized,所以是线程安全的,允许多线程,是线程同步的。扩容是默认为原来的一倍,并且可以自定义扩容大小。