1.HasMap 自定义基础版
package com.test.collection;/** * 自定义实现Map功能 * map :存放键值对,根据键对象找对应的值对象 * @author chenx * */public class MyMap001 { Entry[] arr=new Entry[999]; int size; public void put(Object key,Object value){ Entry e=new Entry(key,value); //解决键重复的处理,后面的直接覆盖 for(int i=0;i
2.HasMap 自定义升级版
package com.test.collection;import java.util.LinkedList;/** * 自定义实现Map功能(升级版) * map :存放键值对,根据键对象找对应的值对象 * * 1.提升查询效率,避免MyMap002中的循环遍历: 数组+链表 * * hashMap:底层实现(数组+链表),链表中放对象,对象中存key,value * * @author chenx * */public class MyMap002 { LinkedList[] arr=new LinkedList[999]; int size; public void put(Object key,Object value){ Entry2 e=new Entry2(key,value); int has=key.hashCode(); has = has<0?-has:has; int a =has%arr.length; if(arr[a] ==null){ LinkedList list =new LinkedList(); arr[a] =list; list.add(e); }else{ LinkedList list=arr[a]; for(int i=0;i