自定义实现Map类 高效版
package text; import java.util.*; /* *自定义Map的升级版 *提高查询的效率 *数组套列表套对象 * */ public class SxtMap002{ LinkedList[] arr= new LinkedList[999];//Mapde 底层实现结构是:数组+链表 int size; public void put(Object key,Object value){ SxtEntry e=new SxtEntry(key,value); int a=key.hashCode()%arr.length; //利用hashCode方法求出要存放的位置 if(arr[a]==null){ LinkedList list=new LinkedList(); arr[a]=list;//将list插入数组中 list.add(e);//将Sxtentry对象插入列表中 }else{ LinkedList list =arr[a];//取出数值中列表进行遍历 for(int i=0;i<list.size();i++){ SxtEntry e2=(SxtEntry) list.get(i); if(e2.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 list = arr[a]; for(int i=0;i<list.size();i++){ SxtEntry e=(SxtEntry) list.get(i); if(e.key.equals(key)){ return e.value; } } } return null; } public static void main(String[] args){ SxtMap002 m=new SxtMap002(); m.put("张三",new Wife("杨幂")); m.put("张三",new Wife("李四")); Wife w=(Wife) m.get("张三"); System.out.println(w.name); } } class Wife{ String name; public Wife(String name){ this.name=name; } }