HashMap的put,get方法实现!

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;
  }
 }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值