Java中HashTable和HashMap的区别
public class Hashtable<K,V>extends Dictionary<K,V>implements Map<K,V>, Cloneable, Serializable
HashMap声明:
public class HashMap<K,V>extends AbstractMap<K,V>implements Map<K,V>, Cloneable, Serializable
2.HashTable是线程安全的,HashMap是线程不安全的。
根据JDK6的文档,HashTable是同步的,也就是说,它是线程安全的。从接口的实现中我们就可以看到,Hashtable是实现了Serializable;
HashMap也同样实现了Serializable,但是根据文档所述,HashMap这个类其实是不同步的,也就是说,HashMap是线程不安全的。如果要使用HashMap进行多线程的开发,那么需要手动添加外同步。(可以使用Collections.synchronizedMap(new HashMap())获取一个线程安全的Map)。
3.HashTable不允许null作为key和value,而HashMap允许null作为key和value。
在HashMap中,只能有一条记录使用null作为key(这不是废话嘛 - -!!),但是可以有任意条value为null的记录。意思是,当使用get(key)方法取数据的时候,如果没有,这个key,或者key对应的值为空,那么get(key)返回null。
HashTable和HashMap最大的区别就是这3个了。
最后,HashMap比HashTable拥有更多的方法,也更新。所以尽可能使用HashMap进行开发。
Java中HashTable和HashMap的区别的更多相关文章
- Java 中 Hashtable与HashMap的区别
Map Map是一个以键值对存储的接口.Map下有两个具体的实现,分别是HashMap和HashTable. 区别: 1.HashMap是线程非安全的,HashTable是线程安全的,所以HashMa ...
- Java 中HashTable、HashMap、TreeMap三者区别,以及自定义对象是否相同比较,自定义排序等
/* Map集合:该集合存储键值对.一对一对往里存.而且要保证键的唯一性. Map |--Hashtable:底层是哈希表数据结构,不可以存入null键null值.该集合是线程同步的.效率低.基本已废 ...
- Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别与用法
Java容器类List.ArrayList.Vector及map.HashTable.HashMap的区别与用法 ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数 ...
- .Net 中HashTable,HashMap 和 Dictionary<key,value> 和List<T>和DataTable的比较
参考资料 http://www.cnblogs.com/MichaelYin/archive/2011/02/14/1954724.html http://zhidao.baidu.com/link? ...
- HashTable, HashSet, HashMap的区别
HashTable, HashSet, HashMap的区别 hash是一种很常见也很重要的数据结构,是用hash函数根据键值(key)计算出存储地址,以便直接访问.由完美hash函数(即键值 ...
- Java中Set Map List 的区别
java中set map list的区别: 都是集合接口 简要说明 set --其中的值不允许重复,无序的数据结构 list --其中的值允许重复,因为其为有序的数据结构 map--成对的数据结构 ...
- C# Hashtable 使用说明 以及 Hashtable和HashMap的区别
一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其 ...
- java中fail-fast 和 fail-safe的区别
java中fail-fast 和 fail-safe的区别 原文地址:http://javahungry.blogspot.com/2014/04/fail-fast-iterator-vs-fa ...
- Java中的数据结构-HashMap
Java数据结构-HashMap 目录 Java数据结构-HashMap 1. HashMap 1.1 HashMap介绍 1.1.1 HashMap介绍 1.1.2 HashMap继承图 1.2 H ...
随机推荐
- 六. 异常处理9.finally块
当异常被抛出,通常方法的执行将作一个陡峭的非线性的转向.依赖于方法是怎样编码的,异常甚至可以导致方法过早返回.这在一些方法中是一个问题.例如,如果一个方法打开一个文件项并关闭,然后退出,你不希望关闭文 ...
- requestFeature() must be called before adding content
错误:requestFeature() must be called before adding content 原因: Android去掉标题栏点菜单键程序崩溃 在安卓以前的版本中,我们会使用以下两 ...
- 事件溯源模式(Event Sourcing Pattern)
此文翻译自msdn,侵删. 原文地址:https://msdn.microsoft.com/en-us/library/dn589792.aspx 本文介绍了一种有利于物化(materialize)领 ...
- XCode工程内多Targets教程
作者 透明de面具 原帖地址 http://www.cocoachina.com/bbs/read.php?tid-10972-fpage-0-toread--page-1.html 相信很 ...
- 机器学习算法实践:朴素贝叶斯 (Naive Bayes)(转载)
前言 上一篇<机器学习算法实践:决策树 (Decision Tree)>总结了决策树的实现,本文中我将一步步实现一个朴素贝叶斯分类器,并采用SMS垃圾短信语料库中的数据进行模型训练,对垃圾 ...
- nginx简单实现反向代理和静态资源服务器
1修改hosts文件 127.0.0.1 www.test1.com 127.0.0.1 www.test2.com 127.0.0.1 static.com 2配置tomcat的server.xml ...
- 【Hadoop】Hadoop MR 自定义序列化类
1.基本概念 2.Mapper代码 package com.ares.hadoop.mr.flowsum; import java.io.IOException; import org.apache. ...
- 2017.9.5 postgresql加密函数的使用
需要安装的插件的名字:pgcrypto 官网地址:https://www.postgresql.org/docs/9.4/static/pgcrypto.html stackoverflow: htt ...
- 2017.7.1 nginx反向代理服务器域名解析配置(已验证可使用)
下载地址:http://learning.happymmall.com/ 前提:ftpserver已经开启,并且设置为: 1.获得安装文件 2.修改配置文件 2.1 修改conf/nginx.conf ...
- Android Tabhost置于底部
方法一: <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id=&qu ...