/**
* 实现hashmap
*/
public class MyHashMap {
private final int N=10000;
private Node[] arr;
public MyHashMap(){
arr=new Node[N];
}
public static void main(String[] args) {
MyHashMap hm=new MyHashMap();
hm.put(1,1);
hm.put(2,2);
hm.remove(1);
System.out.println(hm.get(1));
}
public int get(int key){
int idx=hash(key);
if(arr[idx]!=null){
Node cur=arr[idx].next;
while (cur!=null){
if(cur.key==key){
return cur.value;
}
cur=cur.next;
}
}
return -1;
}
public void remove(int key){
int idx=hash(key);
if(arr[idx]!=null){
Node prev=arr[idx];
while(prev.next!=null){
if(prev.next.key==key){
Node delNode=prev.next;
prev.next=delNode.next;
delNode.next=null;
return;
}
prev=prev.next;
}
}
}
public void put(int key,int value){
int idx=hash(key);
if(arr[idx]==null){
arr[idx]=new Node(-1,-1);
arr[idx].next=new Node(key,value);
}else {
while (arr[idx].next!=null){
if(arr[idx].next.key==key){
arr[idx].next.value=value;
return;
}
arr[idx]=arr[idx].next;
}
arr[idx].next=new Node(key,value);
}
}
private int hash(int key) {
return key%N;
}
private class Node{
int key;
int value;
Node next;
Node(int key,int value){
this.key=key;
this.value=value;
}
}
}