文档章节

HashTable

Java搬砖工程师
 Java搬砖工程师
发布于 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搬砖工程师
粉丝 26
博文 260
码字总数 166188
作品 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 不推荐的线程安全的不允许null键null值得基于数组和链表结构的Map实现类 HashMap比较HashTale 相同 类结构(Map)类成员(Entry数组)数据模型(内部用Entry数组实现哈希表,用链表解决h...

2017/12/13
0
0
Java基础之HashTable与ConcurrentHashMap解析

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

code_xzh
05/30
0
0
Hashtable 与HashMap的区别

1、不同点: (1)、Hashtable书写不规范,t是小写(当然这不是重点,哈哈), (2)、Hashtable继承自Dictionary,而HashMap继承自AbstractMap。 (3)、Hashtable是JDK1.0时就有的,而HashMap...

科技小能手
2017/11/12
0
0
集合——HashMap和Hashtable的区别

HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。 HashMap几乎可以等价于Hashtable,除了H...

亚特兰缇斯
2015/03/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JeeSite 4.x 树形结构的表设计和用法

有些同仁对于 JeeSite 4 中的树表设计不太了解,本应简单的方法就可实现,却写了很多复杂的语句和代码,所以有了这篇文章。 在 JeeSite 4 中的树表设计我还是相对满意的,这种设计比较容易理...

ThinkGem
23分钟前
14
0
0022-如何永久删除Kafka的Topic

1.问题描述 使用kafka-topics --delete命令删除topic时并没有真正的删除,而是把topic标记为:“marked for deletion”,导致重新创建相同名称的Topic时报错“already exists”。 2.问题复现...

Hadoop实操
25分钟前
1
0
技术工坊|区块链中的p2p网络(上海)

区块链是一个去中心化的系统,每个节点分布在全球各地,那么节点之间是如何自发地组成网络,又如何进行通信的?区块链中的p2p网络算法与bt下载中的p2p网络有什么区别?11月28日,第29期技术工...

HiBlock
31分钟前
2
0
MySQL性能优化之char、varchar、text的区别

在存储字符串时, 可以使用char、varchar或者text类型, 那么具体使用场景呢? 参考下面这个表结构: 1、 char长度固定, 即每条数据占用等长字节空间;适合用在身份证号码、手机号码等定。 ...

hansonwong
33分钟前
2
0
并发编程系列:4大并发工具类的功能、原理、以及应用场景

一:并发工具包 1.并发工具类 提供了比synchronized更加高级的各种同步结构:包括CountDownLatch、CyclicBarrier、Semaphore等,可以实现更加丰富的多线程操作。 2.并发容器 提供各种线程安全...

游人未归
44分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部