数组集合区别
1.ArrayList 是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。适合随机查找和遍历,不适合插入和删除。
2.Vector 与ArrayList一样,不同的是它支持线程的同步,即某一时刻只有一个线程能够写Vector,避免多线程同时写而引起的不一致性,但实现同步需要很高的花费,因此,访问它比访问ArrayList慢。Vector提供indexOf(obj, start)接口,ArrayList没有。Vector属于线程安全级别的,线程安全需要更大的系统开销。
3.LinkedList 是用链表结构存储数据的,很适合数据的动态插入和删除,随机访问和遍历速度比较慢。还提供了List接口中没有定义的方法,专门用于操作表头和表尾元素,可以当作堆栈、队列和双向队列使用。
4.HashMap hastmap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而hashtable不允许。HashMap不是线程安全的。HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。HashMap中hash数组的默认大小是16,而且一定是2的指数。HashMap实现的是Map接口。
5.HashTable HashTable是线程安全的一个Collection。HashTable中hash数组默认大小是11,增加的方式是 old*2+1。而HashTable实现的是Set接口。
6.List 元素有放入顺序,元素可重复。List接口有三个实现类:LinkedList,ArrayList,Vector。
7.Map 元素按键值对存储,无放入顺序,键不可重复,值可以重复。Map接口有三个实现类:HashMap,HashTable,LinkeHashMap。
8.Set 元素无放入顺序,元素不可重复。