HashMap是Hashtablehash与map区别的轻量级实现非线程安全的实现hash与map区别,hash与map区别他们都完成hash与map区别了Map接口hash与map区别,主要区别在于HashMap允许空null键值key,由于非线程安全,效率上可能高于HashtableHashMap允许将null作为一个entry的key或者value,而Hashtable不允许HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。
HashMap和Hashtable的主要区别如下线程安全性HashMap不是线程安全的如果在多线程环境下使用,可能会导致数据不一致Hashtable是线程安全的其方法都是同步的,适用于多线程环境null值处理HashMap允许键或值为null使用特殊的null键和null值来表示Hashtable不允许键或值为null如果。
HashMap是非同步的,它在单线程环境中性能更高但在多线程环境中,如果不进行额外的同步处理,可能会导致数据不一致TreeMap同样是非同步的,适用于单线程环境或需要手动进行同步处理的多线程环境null键值支持Hashtable不支持null键和null值如果尝试插入null键或null值,会抛出NullPointerExcep。
结构不同,顺序不同1结构不同LinkedHashMap是HashMap的基础上增加了一个链表结构,LinkedHashMap维护的是一个具有双重链表的HashMap2顺序不同LinkedHashMap支持两种顺序,一种是插入顺序,一种是访问顺序,而HashMap中,遍历时,取得数据的顺序是完全随机的。
一继承父类不同 Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类但二者都实现了Map接口二线程的安全性 1HashTable是同步方法中使用了Synchronize的而HashMap是未同步方法中缺省Synchronize的2Hashtable线程安全,因为它每个方法中都加入了Synchronize,在多线程并发的环境下。
还没有评论,来说两句吧...