HashMap和HashTable的异同点

总结:


hashmap


线程不安全


允许有null的键和值


效率高一点、


方法不是Synchronize的要提供外同步


有containsvalue和containsKey方法


HashMap 是Java1.2 引进的Map interface 的一个实现


HashMap是Hashtable的轻量级实现


hashtable


线程安全


不允许有null的键和值


效率稍低、


方法是是Synchronize的


有contains方法方法


、Hashtable 继承于Dictionary 类


Hashtable 比HashMap 要旧

时间: 2024-11-05 04:20:09

HashMap和HashTable的异同点的相关文章

java源码之HashMap和HashTable的异同

代码版本 JDK每一版本都在改进.本文讨论的HashMap和HashTable基于JDK 1.7.0_67 1. 时间 HashTable产生于JDK 1.1,而HashMap产生于JDK 1.2.从时间的维度上来看,HashMap要比HashTable出现得晚一些. 2. 作者 以下是HashTable的作者: 以下代码及注释来自java.util.HashTable * @author Arthur van Hoff * @author Josh Bloch * @author Neal G

java基础---HashMap和HashTable的异同之处

1:连个都实现了Map的接口,两者的底层数据结构相同,都是transient修饰的entry数组,transient修饰的变量不会序列化即不会持久化,序列化的过程中不会包含这个变量,这个变量的生命周期仅仅是在用户的调用过程中,不能持久化到内存磁盘中.这样便于一些敏感信息的保存 2:HashMap是不安全的,不能同步,不支持多线程并发,HashTable是安全的,有同步锁,但效率低. 3:HashMap从AbstractMap继承而来,HashTable是从Dictionary继承而来 4:Has

Java集合——HashMap、HashTable以及ConCurrentHashMap异同比较

0. 前言 HashMap和HashTable的区别一种比较简单的回答是: (1)HashMap是非线程安全的,HashTable是线程安全的. (2)HashMap的键和值都允许有null存在,而HashTable则都不行. (3)因为线程安全.哈希效率的问题,HashMap效率比HashTable的要高. 但是如果继续追问:Java中的另一个线程安全的与HashMap功能极其类似的类是什么? 同样是线程安全,它与HashTable在线程同步上有什么不同?带着这些问题,开始今天的文章. 本文为

HashMap与HashTable、HashSet与HashMap异同

1. HashMap与HashTable的区别: (1)HashMap允许将null作为一个entry的key或者value,而Hashtable不允许.当get()方法返回null值时,即可以表示HashMap中没有该键,也可以表示该键所对应的值为null.因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键,而应该用containsKey()方法来判断. (2)HashMap把Hashtable的contains方法去掉了,改成containsvalue和cont

java集合框架12——HashMap和HashTable的区别

前面已经学习了Map的部分内容,主要是HashMap和HashTable,这一节我们来看看它们两有啥异同点. 1. HashMap和HashTable的相同点 HashMap和HashTable都是存储"键值对"的散列表,而且都是采用拉链法来实现的.存储的思想都是:通过table数组存储,数组的每个元素都是一个Entry,而一个Entry就是一个单项链表,Entry链表中的每个节点都保存了key-value数据. HashMap和HashTable的相同点基本没啥好研究的,我们更多的是

HashMap和Hashtable

HashMap和Hashtable的区别 HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别.主要的区别有:线程安全性,同步(synchronization),以及速度. HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(value),而Hashtable则不行). HashMap是非synchronized,而Hashtable

HashMap,Hashtable,ConcurrentHashMap 和 synchronized Map 的原理和区别

HashMap 是否是线程安全的,如何在线程安全的前提下使用 HashMap,其实也就是HashMap,Hashtable,ConcurrentHashMap 和 synchronized Map 的原理和区别.当时有些紧张只是简单说了下HashMap不是线程安全的:Hashtable 线程安全,但效率低,因为是 Hashtable 是使用 synchronized 的,所有线程竞争同一把锁:而 ConcurrentHashMap 不仅线程安全而且效率高,因为它包含一个 segment 数组,将

HashMap和Hashtable的区别

导读: 1 HashMap不是线程安全的 hastmap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值.HashMap允许null key和null value,而hashtable不允许. 2   HashTable是线程安全的一个Collection. HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可

hashMap和hashTable区别

[不定项选择题] 有关hashMap跟hashTable的区别,说法正确的是? HashMap和Hashtable都实现了Map接口 HashMap是非synchronized,而Hashtable是synchronized HashTable使用Enumeration,HashMap使用Iterator Hashtable直接使用对象的hashCode,HashMap重新计算hash值,而且用与代替求模 答案:A.B.C.D 来自牛客网的一网友评论,(尊重原评论,小弟在此受教.) HashTa