一、哈希函数是什么
哈希法又称散列法,杂凑法、关键字地址计算法,利用哈希法所构造出来的表叫做哈希表。哈希法的基本思想就是,在key和value的储存位置p之间构造一个哈希函数H,使得H(key)=p,H就称之为哈希函数。当创建哈希表时,直接把关键字为Key的元素存入H(key)的单元,下一次查找时就可以直接通过H(key)来计算出关键字为key的储存位置从而找到关键字为key的元素。
二、哈希函数的构造方法
常用的hash函数的构造方法有:数字分析法,平方取中法,分段叠加法、除留余数法、伪随机数法。
某学校有学生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) {