Java集合(17)--HashMap、Hashtable和ConcurrentHashMap的比较

1. 数据结构

都是数组+拉链实现的哈希表,但是具体实现上差别大了

2. 并发

Hashtable全表锁

HashMap多线程不安全,需要自己封装

ConcurrentHashMap加细粒度锁读不加锁,如果读到空值再加锁。注意这三个关键字final,transient,volatile

 

3. null

Hashtable不允许用 null作为键和值

HashMap允许全局最多一个null键,但是允许无数个null值

ConcurrentHashMap不允许用 null作为键和值

posted @ 2015-08-17 23:28  山野豪杰  阅读(175)  评论(0编辑  收藏  举报