HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。 HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(value),而Hashtable则不行)。 HashMap是非synchronized...
1、概述:HashMap 基于哈希表<key,value>,实现Map接口,接受null的键和值,不允许重复的key,但允许重复的value,即不同的key可以对应相同的value值,非线程安全,Hashtable和HashMap非常类似,同样实现了Map接口,但是Hashtable不接受null的键和值,Hashtable是线程安全的,Java 5提供了ConcurrentHashMap,它是HashTable的替代...
1、线程安全性:Hashtable是线程安全的,因为它的方法都是同步的;相反,HashMap不是线程安全的,它不提供同步保证。2、性能:因为HashMap不同步,所以它的性能比Hashtable更好,速度更快。3、空键和空值的支持:HashMap允许一个null键和多个null值,而Hashtable不允许键或者值为null。4、遗留类:Hashtable是早期Java版本的...
HashMap是支持null键和null值的,而HashTable在遇到null时,会抛出NullPointerException异常。这并不是因为HashTable有什么特殊的实现层面的原因导致不能支持null键和null值,这仅仅是因为HashMap在实现时对null做了特殊处理,将null的hashCode值定为了0,从而将其存放在哈希表的第0个bucket中。我们一put方法为例,看一看代...
2. HashTable和HashMap区别 第一,继承不同。 代码语言:javascript 复制 publicclassHashtableextendsDictionaryimplementsMappublicclassHashMapextendsAbstractMapimplementsMap 第二 Hashtable 中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。在多线程并发的环境下,可以直接使用Hashtable,但是要使用HashMap的话...
Java的HashMap和HashTable有以下区别:1.同步性的区别;2.安全性不同;3.父类不同;4.对外提供的接口不同;5.对null的支持不同;6.遍历方式的内部实现上不同。同步性的区别在于,HashMap是非同步的,而Hashtable是同步的。 1.同步性的区别 HashMap是非同步的,而Hashtab...
HashMap 和 Hashtable 都是 Java 中常用的 Map 接口的实现类,它们的区别主要在以下四个方面: 1. 线程安全性 Hashtable 是线程安全的,它的所有操作都是同步的,适用于多线程环境;而 HashMap 则是非线程安全的,它的操作不是同步的,只适用于单线程环境。 2. null 值 Hashtable 不支持 null 作为 key 或 ...
1.HashMap和Hashtable之间的区别 1.1. 同步性 Hashtable是同步的(即在Hashtable内定义的方法是同步的),而HashMap不是。如果你想让HashMap线程安全,可以使用Collections.synchronizedMap(map)或ConcurrentHashMap类。 Hashtable内的方法如下定义为同步的: public synchronized boolean contains(Object obj){ ... } ...
在Java中HashMap和Hashtable有几个区别:Hashtable是同步的,而HashMap不是。这使得HashMap更适合于非线程应用程序,因为非同步对象通常比同步对象执行得更好。Hashtable不允许空键或空值。HashMap允许一个空键和任意数量的空值。HashMap有一个子类是LinkedHashMap,所以如果你想要可预测的迭代顺序(默认情况下是插入顺序...