1. ArrayList、Vector采用数组方式存储数据,此数组元素数大于实际存储的数据,以便增加和插入元素。都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢。
LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要记录本项的前后项即可,所以插入数度较快!
2.
Collection
├List(允许有相同的元素)
│ ├LinkedList
│ ├ArrayList (允许所有元素,包括null; 没有同步,所以不是线程安全的)
│ └Vector (类似ArrayList,但是Vector是同步的,线程安全)
│ └Stack
└Set(不包含重复的元素)
Map(提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个value)
├Hashtable (key或value不能为空;同步)
├HashMap (允许null,即null value和null key;非同步的)
└WeakHashMap