您的位置:首页 > 其它

Map的底层实现

2016-04-06 23:00 309 查看
 

package com.scxh.ex12testMap.myEntry;

public class MyEntry {
    private Object key;
    private Object value;
    
    public Object getKey() {
        return key;
    }
    public void setKey(Object key) {
        this.key = key;
    }
    public Object getValue() {
        return value;
    }
    public void setValue(Object value) {
        this.value = value;
    }
    
}

 
 
 

package com.scxh.ex12testMap.myEntry;

public class MyMap {
    private MyEntry[] entry;
    private  int size;//元素的个数
    
    MyMap(){
        entry=new MyEntry[10];
    }
    public void put(Object key,Object value){
        boolean flag=false;
        for(int i=0;i<size;i++){    //遍历
            MyEntry myEntry=entry[i];   //
            if(key.equals(myEntry.getKey())){//如果数组中存在相同的key
                flag=true;                  //令flag等于true
                entry[i].setValue(value);   //令该位置处的值为传入的值(覆盖)ֵ
                break;
            }                       
        }   
        if(!flag){                      //如果flag为false,就令节点数组的size下标处的key和value
            MyEntry my=new MyEntry();   //值为传入的key和value,并令size++
            my.setKey(key);
            my.setValue(value);
            
            entry[size]=my;
            size++;
        }
    }
    
    public  int size(){
        return size;
    }
    public MyEntry get(int index){
        return entry[index];
    }
    
    public static void main(String[] args) {
        MyMap map=new MyMap();
        map.put("1", "11");
        map.put("2", "22");
        map.put("3", "33");
        map.put("4", "44");
        map.put("4", "55");
        for(int i=0;i<map.size();i++){
            MyEntry entry=map.get(i);
            System.out.println(entry.getKey()+"---"
bc28
+entry.getValue());
        }
    }
}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: