博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HashMap和Hashtable的区别
阅读量:6319 次
发布时间:2019-06-22

本文共 689 字,大约阅读时间需要 2 分钟。

HashMap 是Hashtable 的轻量级实现(非线程安全的实现),他们都完成了Map 接口,主要

区别在于HashMap 允许空(null)键值(key),由于非线程安全,在只有一个线程访问的情
况下,效率要高于Hashtable。
HashMap 允许将null 作为一个entry 的key 或者value,而Hashtable 不允许。
HashMap 把Hashtable 的contains 方法去掉了,改成containsvalue 和containsKey。因为contains
方法容易让人引起误解。
Hashtable 继承自Dictionary 类,而HashMap 是Java1.2 引进的Map interface 的一个实现。
最大的不同是,Hashtable 的方法是Synchronize 的,而HashMap 不是,在多个线程访问
Hashtable 时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
Hashtable 和HashMap 采用的hash/rehash 算法都大概一样,所以性能不会有很大的差异。
就 HashMap 与HashTable 主要从三方面来说。
一.历史原因:Hashtable 是基于陈旧的Dictionary 类的,HashMap 是Java 1.2 引进的Map 接口
的一个实现
二.同步性:Hashtable 是线程安全的,也就是说是同步的,而HashMap 是线程序不安全的,
不是同步的
三.值:只有HashMap 可以让你将空值作为一个表的条目的key 或value.

 

转载地址:http://shdaa.baihongyu.com/

你可能感兴趣的文章
文摘:OUTER JOIN
查看>>
http://git.oschina.net/chunanyong/springrain
查看>>
(转)Android中的Shape使用总结
查看>>
解决stackoverflow打开慢不能注册登录
查看>>
谈谈newDate()的简单使用 JS
查看>>
django-1-新手如何使用django
查看>>
Linq 基础
查看>>
windows应用程序框架及实例
查看>>
Hibernate 对象的三种状态
查看>>
SVN提交出现“< < < < < < < .mine’无效,路径中具有非法字符”的问题
查看>>
BZOJ-4915-简单的数字题
查看>>
UVa 270 & POJ 1118 - Lining Up
查看>>
UVa 442 - Matrix Chain Multiplication
查看>>
微服务架构 SpringCloud(一)组件和概念介绍
查看>>
23种设计模式之原型模式
查看>>
Android开发指南(39) —— Testing Fundamentals
查看>>
【Unity Shader学习笔记】(五)使用鼠标绘制自由多边形(附完整工程源码)
查看>>
laravel 心得
查看>>
[LeetCode] Permutation Sequence
查看>>
Solr索引数据库数据
查看>>