import java.util.LinkedList;
public class HashMap {
private int size;
public LinkedList<keyval>[] casks;
public HashMap(int size){
this.size=size;
this.casks= new LinkedList[size];
for(int i=0;i<size;i++){
casks[i]=new LinkedList<keyval>();
}
}
public static void main(String[] args) {
HashMap hm=new HashMap(10);
hm.put("name","danger");
hm.put("name","123456");
System.out.println(hm.get("name"));
}
public void put(Object key,Object val){
int index=hashIndex(key);
LinkedList<keyval> keyvals=casks[index];
keyval kv=getkeyVal(key, keyvals);
if(kv==null){
keyvals.add(new keyval(key, val));
}else{
kv.val=val;
}
}
private int hashIndex(Object key) {
int code = key.hashCode();
int index = code % size;
return index;
}
public Object get(Object key){
int index=hashIndex(key);
LinkedList<keyval> keyvals=casks[index];
return getkeyVal(key, keyvals).val;
}
private keyval getkeyVal(Object key,LinkedList<keyval> kvs){
for(keyval kv:kvs){
if(kv.key==key){
return kv;
}
}
return null;
}
class keyval {
private Object key;
private Object val;
public keyval(Object key, Object val) {
this.key = key;
this.val = val;
}
public Object getKey() {
return key;
}
public void setKey(Object key) {
this.key = key;
}
public Object getVal() {
return val;
}
public void setVal(Object val) {
this.val = val;
}
}
}