文档章节

HashTable

Java搬砖工程师
 Java搬砖工程师
发布于 2018/10/23 10:44
字数 558
阅读 2
收藏 0
  • Hashtable 是一个散列表,它存储的内容是键值对(key-value)映射
  • Hashtable 继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口
  • Hashtable 的函数都是同步的,这意味着它是线程安全的。它的key、value都不可以为null

  • 与HashMap不同的是Hashtable是继承Dictionary,实现了Map接口
  • Map是"key-value键值对"接口,Dictionary是声明了操作"键值对"函数接口的抽象类

第三个构造函数:

(1)table是一个Entry[]数组类型,而Entry实际上就是一个单向链表。哈希表的"key-value键值对"都是存储在Entry数组中的。 

(2)count是Hashtable的大小,它是Hashtable保存的键值对的数量。 

(3)threshold是Hashtable的阈值,用于判断是否需要调整Hashtable的容量。threshold的值="容量*加载因子"。

(4)loadFactor就是加载因子。

(5)modCount是用来实现fail-fast机制的


put 方法

  • Hashtable中的key和value是不允许为空的
  • 当我们想要想Hashtable中添加元素的时候,首先计算key的hash值,然后通过hash值确定在table数组中的索引位置,最后将value值替换或者插入新的元素,如果容器的数量达到阈值,就会进行扩充

get 方法

  • 同样也是先获得索引值,然后进行遍历,最后返回

Hashtable和HashMap到底有哪些不同呢:

  • 基类不同:HashTable基于Dictionary类,而HashMap是基于AbstractMap
    • Dictionary是什么?它是任何可将键映射到相应值的类的抽象父类
    • 而AbstractMap是基于Map接口的骨干实现,它以最大限度地减少实现此接口所需的工作
  • null不同:HashMap可以允许存在一个为null的key和任意个为null的value,但是HashTable中的key和value都不允许为null
  • 线程安全:HashMap时单线程安全的,Hashtable是多线程安全的
  • 遍历不同:HashMap仅支持Iterator的遍历方式,Hashtable支持Iterator和Enumeration两种遍历方式

© 著作权归作者所有

共有 人打赏支持
Java搬砖工程师
粉丝 30
博文 345
码字总数 238829
作品 0
南京
程序员
私信 提问
Java集合之Hashtable详细介绍(源码解析)和使用示例

第1部分 Hashtable介绍 Hashtable 简介 和HashMap一样,Hashtable 也是一个散列表,它存储的内容是键值对(key-value)映射。 Hashtable继承于Dictionary,实现了Map、Cloneable、java.io.Ser...

KeepLearning的博客
2017/12/14
0
0
Java Hashtable类源码解析

老生常谈的问题——Hashtable和HashMap有什么区别 大家一般都能说出几条,比如Hashtable是线程安全的,不支持null作为key和value值等等。那么,要仔细了解这个问题还是直接从Hashtable的源码...

Mr_zebra
2018/10/30
0
0
java集合之HashTable实例讲解

HashTable 不推荐的线程安全的不允许null键null值得基于数组和链表结构的Map实现类 HashMap比较HashTale 相同 类结构(Map)类成员(Entry数组)数据模型(内部用Entry数组实现哈希表,用链表解决h...

2017/12/13
0
0
java HashMap与Hashtable区别

1.HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(value),而Hashtable则不行)。 2.HashMap是非synchronized,而H...

随性_
2016/05/11
74
0
Java基础之HashTable与ConcurrentHashMap解析

HashTable和HashMap的区别 在面试的过程中,经常会被问到HashTable和HashMap的区别,下面就这些区别做一个简单的总结。 1、继承的父类不同 Hashtable继承自Dictionary类,而HashMap继承自Abs...

code_xzh
2018/05/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

漏洞防御与修复工作

漏洞管理工作是企业安全建设必不可少的一环,在风险管理工作中,漏洞管理能够防患于未然,企业对漏洞管理有着广泛的基础建设和实践经验。但随着攻防技术的发展,传统漏洞管理的安全技术和管理...

linuxprobe16
18分钟前
0
0
MicroPython技术及应用前景

1 Micropython技术是什么? MicroPython极精简高效的实现了Python3语言。它包含Python标准库的一小部分,能在单片机和受限环境中运行。 1.1 MicroPython发展 由剑桥大学的理论物理学家乔治....

bodasisiter
24分钟前
0
0
跟我学Spring Cloud(Finchley版)-13-通用方式使用Hystrix

本节详细讲解使用Hystrix的通用方式。 简介 Hystrix是由Netflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提升系统的可用性与容错性。Hystrix主要...

周立_ITMuch
33分钟前
0
0
🛠️Hanjst/汉吉斯特更新加JavaScript运行时优化等

这是 Hanjst/汉吉斯特 发布以来的首个主要升级更新版本。这次的主要升级更新的内容包括移除HTML Comments注释行, 优化在 Hanjst include模板文件时的JavaScript运行时环境。 Hanjst 在设计和...

wadelau
今天
2
0
OSChina 周六乱弹 —— 舔狗是没有好下场的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @我没有抓狂 :#今天听什么# #今天听这个# 分享 Nirvana 的歌曲《Smells Like Teen Spi...》 《Smells Like Teen Spi...》- Nirvana 手机党少...

小小编辑
今天
494
13

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部