哈希表
散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。(我的理解就是由链表构成的数组)
例子:利用哈希表储存学生学生信息,可以通过学号来查找学生姓名
- 个人思路:首先定义学生类,由学号姓名,当然有节点
-
然后有个链表类,元素是学生类型的,可以添加学生,可以查看学生,可以根据学生id查找到学生姓名
-
再有一个类型为学生链表的数组,可以添加链表,要有可以算出哈希值的方法;根据哈希值找到链表的序号,可以查看所有哈希表的元素。
- 细节部分:当数组某序号下的链表没有元素时的情况
-
根据学生下一节点来判断是否为空,可以继续往下查找
-
查找和查看以及添加的方法要一级一级的调用
-
代码部分
ackage hashtable;
/**
* 哈希表
* 1.结构是数组加链表
* 2.模拟通过学号查找学生成绩
*/
public class Stud