1. 哈希表的基本介绍
散射表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。
2. 哈希表的由来
3. 举个例子
google 公司的一个上机题:
有一个公司,当有新员工来报道时,要求将该员工的信息加入(id,名字。。)当输入该员工的id时,要求查找该员工的所有信息。
要求:
- 不使用数据库,速度越快越好=》哈希表(散列)
- 添加时,保证按照 id 从低到高插入 [课后思考:如果 id 不是从低到高插入,但要求各条链表仍是从低到高,怎么解决?]
- 使用链表来实现哈希表,该链表不带表头 [即:链表的第一个结点就存放雇员信息]
- 思路分析并画出示意图
- 代码实现【增删改查(显示所有员工,按 id 查询)】
3.1 使用哈希表来管理雇员信息的思路分析
3.2 代码实现
public class EmployInformation {
public static void main(String[] args) {
// 创建哈希表
HashTab hashtab = new HashTab(7);
// 写一个简单的菜单
String key = "";
Scanner scanner = new Scanner(System.in);
while(true) {
System.out.println("add::添加雇员");
System.out.println("list:显示雇员");
System.out.println("find:查找雇员");
System.out.println("exit:退出系统");
key = scanner.next();
switch(key) {
case "add":
System.out.println("输入id");