哈希表的概念
数组和向量都可以存储对象,但对象的存储位置是随机的,也就是说对象本身与其存储位置之间没有必然的联系。当要查找一个对象时,只能以某种顺序(如顺序查找或二分查找)与各个元素进行比较,当数组或向量中的元素数量很多时,查找的效率会明显的降低。
一种有效的存储方式,是不与其他元素进行比较,一次存取便能得到所需要的记录。这就需要在对象的存储位置和对象的关键属性(设为 k)之间建立一个特定的对应关系(设为 f),使每个对象与一个唯一的存储位置相对应。在查找时,只要根据待查对象的关键属性 k 计算f(k)的值即可。如果此对象在集合中,则必定在存储位置 f(k)上,因此不需要与集合中的其他元素进行比较。称这种对应关系 f 为哈希(hash)方法,按照这种思想建立的表为哈希表。
哈希表简单代码
package Sujujiego;
import javax.security.auth.login.CredentialException;
public class HashTable {
public class Node{
Node next;
Object key;
Object data;
public Node(Object key,Object data){
this.key=key;
this.data=data;
}
}
public Node[] Headlist=new Node[1];
public int size=0;
public float peakValue=1.7f;
public static void main(String[] args){
String[] key={
"a","b","c","d","e","f","g","i"};
String[] data={
"1","2","3","4","5","6","7","8"
};
HashTable table=new HashTable();
for (int i=0;i<key.leng