hash尝试 日记

上代码。


/**
* hash表的基本创建
* 测试入口实例化
*/
public class CreateHash {
//定义hash根数组
private Node hashList[];

public CreateHash(int size2) {
Create(size2);
}

/**
* hash表创建
*/
public void Create(int size){
hashList=new Node[size];

}

/**
* 添加元素
* @param obj
*/
public void Add(Object obj){
int index=HashCode(obj);
if(hashList[index]==null){
hashList[index]=new Node(obj);
}else {
Node node =new Node(obj);
node.setNext(hashList[index]);
hashList[index]=node;

}

}

/**
* 打印程序
*/
public void PrintAll(){
for(int i=0;i<hashList.length;i++){
int count=1;
Node tempNode=hashList[i];
while(tempNode!=null){
System.out.println("第"+i+"行"+"第"+count+"个是:"+tempNode.getObj());
tempNode=tempNode.next;
}
System.out.println("本行打印完毕");
}
System.out.println("数据打印完毕");
}


/**
* hash算法
* @param obj
* @return
*/
private int HashCode(Object obj) {
return obj.hashCode()%10;
}

}


/**
* 节点类
*/
public class Node {

public Object obj;
public Node next;

//构造器
public Node (Object obj){
this.obj=obj;
}
//节点数据返回
public Object getObj(){
return obj;
}
//返回当前节点的下个节点
public Node getNext(){
return this.next;
}
//设置当前节点的下个节点
public void setNext(Node next){
this.next=next;
}
}


写点小东西自娱自乐了。
在我理解,hash的实现既是利用hash算法实现的一种特殊的数据转化,原数据与转化过后的数据通过hash算法想关联。通过key值在存储结构中检索数据。
存储结构,我的理解是数组加链表。数组通过key的关联存储链表的头。数据检索时,通过key在数组中检索到相应链表的位置,然后在链表中检索到数据。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值