Map

来源:互联网 发布:java中日期控件 编辑:程序博客网 时间:2024/06/16 14:22

HashMap  null可以作为键、值保存。Hashtable不行。HashMap.get()返回null既可以表示key不存在,也可以表示key对应值为null.Hashtable.get()返回null表示不存在key。

HashMap线程不安全  Hashtable线程安全。put、get、remove、containsKey、contains...方法上面都加了synchronized。但是对于混合使用时就不是线程安全的了。如:

if(table.contains(key)){
   table.remove(key);
 }

如果您要按自然顺序或自定义顺序遍历键,那么TreeMap会更好

ConcurrentHashMap默认分为16个桶。可以16个线程同时执行写、删等常规操作。

他的遍历是new一个新的数组。这样iterator既可以使用老的数据。写的线程也可以并发的完成改变。就不会再抛异常了。

 

 

http://www.360doc.com/content/13/0807/16/11947209_305402798.shtml
原创粉丝点击