java中map的线程安全问题
Map用于存储“key-value”元素对,它将一个key映射到一个而且只能是唯一的一个value。 Map可以使用多种实现方式,HashMap的实现采用的是hash表;而TreeMap采用的是红黑树。 ** java.util包提供了大量集合类。其中最常用的集合类有List、Set、Map等。 ** 首先,来看下java.util包中Map相关的集合类。Map往下提供了两个接口:ConcurrentMap和SortedMap。ConcurrentMap是java5中新增的线程安全的Map接口;而SortedMap则是支持排序的Map接口。常用的就属Hashtable、HashMap和TreeMap了。另外,java5新增了HashMap的并发版本ConcurrentHashMap。 ** Hashtable 和 HashMap ** Hashtable和HashMap都实现了Map接口,但是Hashtable的实现是基于Dictionary抽象类。 在HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。 当get()方法返回null值时,即可以表示HashMap中没有该键,也可以表示该键所对应的值为null。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键, 而应该用containsKey()方法来判断