数组集合区别

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  元素无放入顺序,元素不可重复。

posted @ 2014-11-12 20:37  吕坤  阅读(158)  评论(0编辑  收藏  举报