代码
public class HashDemo<k,v> {
int length;
node[] nodes;
public HashDemo(int length){
this.length=length;
nodes=new node[length];
}
class node<k,v>{
k key;
v value;
node<k,v> next;
public node(k key,v value,node<k,v> next){
this.key=key;
this.value=value;
this.next=next;
}
}
public int getLength(k key){
return key.hashCode() % length;
}
public void put(k key,v value){
int length=getLength(key);
for(node<k,v> node=nodes[length];node !=null; node= node.next){
if (key.equals(node.key)){
node.value=value;
return;
}
}
node<k,v> old=nodes[length];
nodes[length]=new node(key,value,old);
}
public v get(k key){
int length=getLength(key);
if (nodes[length] == null){
return null;
}
for(node<k,v> node=nodes[length]; node !=null ;node=node.next){
if (key.equals(node.key)){
return node.value;
}
}
return null;
}
public static void main(String[] args) {
HashDemo<String, String> entity = new HashDemo<>(2);
entity.put("111","333");
entity.put("111","222");
entity.put("222","3333");
System.out.println(entity.get("111"));
System.out.println(entity.get("222"));
}
}