[Java] HashMap和HashTable的区别

版权声明:请尊重个人劳动成果,转载注明出处,谢谢!

  • HashTable

Hashtable继承于Dictionary字典,实现Map接口

键、值都不能是空对象

多次访问,映射元素的顺序相同

线程安全

hash算法 ,Hashtable则直接利用key本身的hash码来做验证

数据遍历的方式 Iterator (支持fast-fail)和 Enumeration (不支持fast-fail)

缺省初始长度为11,内部都为抽象方法,需要 它的实现类一一作自己的实现

备注:程序在对 collection 进行迭代时,某个线程对该 collection 在结构上对其做了修改,这时迭代器就会抛出 ConcurrentModificationException 异常信息,从而产生 fail-fast。

  • HashMap

HashMap继承于AbstractMap抽象类

键和值都可以是空对象

多次访问,映射元素的顺序可能不同

非线程安全 
HashMap可以通过下面的语句进行同步: 
Map m = Collections.synchronizeMap(hashMap);

检测是否含有key时,HashMap内部需要将key的hash码重新计算一边再检测

数据遍历的方式 Iterator (支持fast-fail)

缺省初始长度为16,其内部已经实现了Map所需 要做的大部分工作, 它的子类只需要实现它的少量方法

时间: 2024-11-16 05:28:34

[Java] HashMap和HashTable的区别的相关文章

java面试题——详解HashMap和Hashtable 的区别_java

一.HashMap 和Hashtable 的区别 我们先看2个类的定义 public class Hashtable extends Dictionary implements Map, Cloneable, java.io.Serializable public class HashMap extends AbstractMap implements Map, Cloneable, Serializable 可见Hashtable 继承自 Dictiionary 而 HashMap继承自Abs

HashMap和Hashtable的区别

HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题.HashMap的工作原理.ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题.Hashtable是个过时的集合类,存在于Java API中很久了.在Java 4中被重写了,实现了Map接口,所以自此以后也成了Java集合框架中的一部分.Hashtable和HashMap在Java面试中相当容易被问到,甚至成为了集合

hashmap hashtable-哪位能详细告知HashMap和HashTable的区别?

问题描述 哪位能详细告知HashMap和HashTable的区别? 在面试的时候HashMap和HashTable的区别?在面试的时候HashMap和HashTable的区别? 解决方案 Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的,只有HashMap可以让你将空值作为一个表的条目的key或value 解决方案二: HashMap和Hashtable的详细区别 解决方案三: haspTable现在不用了 解决方案四: 这是java的基础类库,提供

HashMap 和 Hashtable的区别_java

HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题.HashMap的工作原理.ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题.Hashtable是个过时的集合类,存在于Java API中很久了.在Java 4中被重写了,实现了Map接口,所以自此以后也成了Java集合框架中的一部分.Hashtable和HashMap在Java面试中相当容易被问到,甚至成为了集合

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

版权声明:尊重博主原创文章,转载请注明出处哦~http://blog.csdn.net/eson_15/article/details/51250324 目录(?)[+] 前面已经学习了Map的部分内容,主要是HashMap和HashTable,这一节我们来看看它们两有啥异同点. 1. HashMap和HashTable的相同点         HashMap和HashTable都是存储"键值对"的散列表,而且都是采用拉链法来实现的.存储的思想都是:通过table数组存储,数组的每个元

浅析java中ArrayList与Vector的区别以及HashMap与Hashtable的区别_java

就ArrayList与Vector主要从二方面来说.一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的 二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半 就HashMap与HashTable主要从三方面来说.一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现 二.同步性:Hashtable是线程安全的,也就是说是同步的,

Java中HashMap和Hashtable的区别浅析_java

HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable. HashMap允许将null作为一个entry的key或者value,而Hashtable不允许. HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey.因为contains方法容易让人引起误解. Hashtable继承自Dict

ConurrentHashMap和Hashtable的区别

转自:http://www.importnew.com/7166.html 集合类是Java API的核心,但是我觉得要用好它们是一种艺术.我总结了一些个人的经验,譬如使用ArrayList能够提高性能,而不再需要过时的Vector了,等等.JDK 1.5引入了一些好用的并发集合类,它们对于大型的.要求低延迟的电子商务系统来说非常的有用.这篇文章中将会看看ConcurrentHashMap和Hashtable之间的区别. 这篇文章是HashMap的工作原理以及HashMap和Hashtable的

HashMap和HashSet的区别

HashMap和HashSet的区别是Java面试中最常被问到的问题.如果没有涉及到Collection框架以及多线程的面试,可以说是不完整.而Collection框架的问题不涉及到HashSet和HashMap,也可以说是不完整.HashMap和HashSet都是collection框架的一部分,它们让我们能够使用对象的集合.collection框架有自己的接口和实现,主要分为Set接口,List接口和Queue接口.它们有各自的特点,Set的集合里不允许对象有重复的值,List允许有重复,它