JAVA Collection笔记(2012/9/19)

1.ArrayList,LinkedList是线性表的两个典型实现:前者是基于数组的线性表,后者是基于链的线性表。数组

2.各类集合性能比较安全

集合名称            |    实现机制        |    随机访问排名        |    迭代操做排名        |    插入操做排名        |    删除操做排名性能

数组                    连续内存区保存元素        1                        不支持                        不支持                    不支持线程

ArrayList/ArrayDeque 以数组保存元素          2                            2                                2                            2内存

Vector                    以数组保存元素          3                             3                                3                            3io

LinkedList              以链表保存元素           4                            1                                1                            1table

 3.HashSet,TreeSet,ArrayList,ArrayDeque,LinkedList,HashMap,TreeMap都是线程不安全的,经过Collectioins.synchronizedXXX()方法能够得到其线程安全版本jdk

实例:List

Collection c = Collections.synchronizedCollection(new ArrayList());
List list = Collections.synchronizedList(new ArrayList());
Set s = Collections.synchronizedSet(new HashSet());
Map m = Collections.synchronizedMap(new HashMap());方法

4.线程安全的集合Vector,Stack,Hashtable 都是在jdk1.1就出现 性能较低 通常不推荐使用

5.Hashtable和HashMap主要的两点区别 (1)Hashtable是线程安全实现,HashMap是线程不安全的实现 (2)Hashtable不容许null做为key和value,试图放入的话会报NullPointerException

相关文章
相关标签/搜索