java自己实现的简单的hashMap

来源:互联网 发布:中国体彩软件下载 编辑:程序博客网 时间:2024/06/08 12:08
package my.map;

import java.util.*;
public class MyHashMap {
    LinkedList[]array = new LinkedList[999]; //HashMap的底层实现结构数组和链表
    intsize;
    
    public intsize() {
      return size;
    }
    public voidadd(Object key, Object value) {
      MyEntry e = new MyEntry(key,value);      
      int hashCode = key.hashCode() % 999;

      if(array[hashCode] == null) {
         LinkedList list = new LinkedList();
         list.add(e);
         array[hashCode] = list;
      } else {
         LinkedList list = array[hashCode];
         
         for(int i=0; i
            MyEntry en = (MyEntry)list.get(i);
            if(en.key.equals(key)) {
               en.value = value;
               return;
            }
         }
         list.add(e);
      }
      size++;
    }
    
    public voidremove(Object key) {
      int hashCode = key.hashCode() % 999;
      
      if(array[hashCode] != null) {
         LinkedList list = array[hashCode];
         
         for(int i=0; i
            MyEntry e = (MyEntry)list.get(i);
            if(e.key.equals(key)) {
               list.remove(i);
               size--;
               return;
            }
         }
      }
    }
    
    publicObject get(Object key) {
      int hashCode = key.hashCode() % 999;
      
      if(array[hashCode] != null) {
         LinkedList list = array[hashCode];
         
         for(int i=0; i
            MyEntry e = (MyEntry)list.get(i);
            if(e.key.equals(key)) {
               return e.value;
            }
         }
      }
      return null;
    }
}

class MyEntry {
    Objectkey;
    Objectvalue;
    
    publicMyEntry(Object key, Object value) {
      this.key = key;
      this.value = value;
    }
}
原创粉丝点击