Java中Map的简单实现 用数组,链表,hashcode

来源:互联网 发布:矢量数据 编辑:程序博客网 时间:2024/05/29 03:24

简单实现版本,效率低

package top.justsa;import java.util.LinkedList;public class TestMap002 {LinkedList[] arr=new LinkedList[999];int size;    public void put(Object key,Object value){    TestEntry e=new TestEntry(key, value);    int a=key.hashCode()%arr.length;    if(arr[a]==null){    LinkedList<Object> list=new LinkedList<>();    arr[a]=list;    list.add(e);    }else{    LinkedList<Object> list=arr[a];    for(int i=0;i<list.size();i++){    TestEntry e2=(TestEntry)list.get(i);    if(e.key.equals(key)){    e2.value=value;//键值重复直接覆盖    return;    }    }    arr[a].add(e);    }    }public Object get(Object key){int a=key.hashCode()%arr.length;if(arr[a]!=null){    LinkedList<Object> list=arr[a];    for(int i=0;i<list.size();i++){    TestEntry e=(TestEntry)list.get(i);    if(e.key.equals(key)){    return e.value;    }    }    }return null;}public static void main(String[] args) {TestMap002 map002=new TestMap002(); }} 


原创粉丝点击