数据结构4 | 哈希表及其应用

哈希表(散列表)是一种存储对象的集合类结构,通过哈希方法建立对象存储位置与关键属性的对应关系,提高查找效率。Java中的Hashtable类实现了哈希表,包括容量、关键字、哈希码、项和装填因子等概念。哈希表提供多种构造方法,如默认构造函数、指定容量构造函数等,并包含put、get、remove等主要操作方法。
摘要由CSDN通过智能技术生成

1、什么是哈希表

哈希表也称为散列表,是用来存储群体对象的集合类结构。

数组和向量都可以存储对象,但对象的存储位置是随机的,也就是说对象本身与其存储位置之间没有必然的联系。当要查找一个对象时,只能以某种顺序(如顺序查找或二分查找)与各个元素进行比较,当数组或向量中的元素数量很多时,查找的效率会明显的降低。

一种有效的存储方式,是不与其他元素进行比较,一次存取便能得到所需要的记录。这就需要在对象的存储位置和对象的关键属性之间建立一个特定的对应关系,使每个对象与一个唯一的存储位置相对应。在查找时,只要根据待查对象的关键属性 k 计算 f(k)的值即可。如果此对象在集合中,则必定在存储位置 f(k)上,因此不需要与集合中的其他元素进行比较。称这种对应关系 f 为哈希(hash)方法,按照这种思想建立的表为哈希表

Java使用哈希表类(Hashtable)来实现哈希表,以下是与哈希表相关的一些概念:

1.1容量(Capacity)

:Hashtable的容量不是固定的,随对象的加入其容量也可以自动增长。

1.2关键字(Key)

:每个存储的对象都需要有一个关键字,key可以是对象本身,也可以是对象的一部分(如某个属性)。要求在一个Hashtable中的所有关键字都是唯一的。

1.3哈希码(Hash Code)

:若要将对象存储到Hashtable上,就需要将其关键字key映射到一个整型数据,成为key的哈希码。

1.4项(Item)

:Hashtable中的每一项都有两个域,分别是关键字域 key 和值域 value(存储的对象)。Key 和 Value 都可以是任意的Object类型的对象,但不能为空。

1.5装填因子(Load Factor)

:装填因子表示为哈希表的装满程度,其值等于元素数比上哈希表的长度。

2、哈希表的使用

哈希表类主要有三种形式的构造方法:
Hashtable();//默认构造函数,初始容量为101,最大填充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值