java数据结构-哈希函数的构造方法

本文探讨了哈希函数的概念,并详细介绍了三种构造哈希函数的方法:数字分析法、平法取中法和分段叠加法,旨在帮助读者深入理解哈希函数在Java数据结构中的应用。
摘要由CSDN通过智能技术生成

一、哈希函数是什么

哈希法又称散列法,杂凑法、关键字地址计算法,利用哈希法所构造出来的表叫做哈希表。哈希法的基本思想就是,在key和value的储存位置p之间构造一个哈希函数H,使得H(key)=p,H就称之为哈希函数。当创建哈希表时,直接把关键字为Key的元素存入H(key)的单元,下一次查找时就可以直接通过H(key)来计算出关键字为key的储存位置从而找到关键字为key的元素。

二、哈希函数的构造方法

常用的hash函数的构造方法有:数字分析法,平方取中法,分段叠加法、除留余数法、伪随机数法。

1、数字分析法

某学校有学生1000人,学生的学号为10086000-10086999之间,我们要把学生的基本信息和学号储存到hash表中然后只需要输入学号就能查找出相应的信息。对于这个案列来说,首先表的长度与关键字的集合我们都已经确定了,并且关键字分布均匀,那么就可以使用数字分析法来构造哈希函数,通过取学号的后3位来作为哈希函数的key。
/**
 * Created by zhu on 2017/3/6.
 * 储存key-value的单位
 */
public class Node {
    int hash;
    Object key;
    Object value;
    Node next;

    public Node(Object key, Object value,int hash) {
        this.key = key;
        this.value = value;
        this.hash = hash;
    }


    public Object getKey() {
        return key;
    }

    public Object getValue() {
        return value;
    }

    public Node getNext() {
        return next;
    }

    public void setNext(Node next) {
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值