自定义实现简单HashMap类,美团一面答得不好的一道题,回来之后自己又实现了一遍。简易版HashMap,能实现最基本的put()和get()操作。
package JavaLearning;
import java.util.ArrayList;
public class MyHashMap {
Object key;
Object value;
Object [] arrays=new Object[10];//设数组大小为10,当然可以更大
public void put(Object o1,Object o2){
key=o1;
int index=key.hashCode()%10;//定义映射规则,若key值相同,value不同则对value进行覆盖
arrays[index]=o2;
}
public Object get(Object key){
int index=key.hashCode()%10;
value=arrays[index];
return value;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MyHashMap mHM=new MyHashMap();
ArrayList<Integer> aList=new ArrayList<Integer>();
aList.add(1);
aList.add(2);
aList.add(3);
ArrayList<Integer> bList=new ArrayList<Integer>();
bList.add(4);
bList.add(5);
bList.add(6);
ArrayList<Integer> cList=new ArrayList<Integer>();
cList.add(7);
cList.add(8);
cList.add(9);
mHM.put("a", aList);
mHM.put("b", bList);
mHM.put("c", cList);
String aVal=mHM.get("a").toString();
String bVal=mHM.get("b").toString();
String cVal=mHM.get("c").toString();
System.out.println(aVal+","+bVal+","+cVal);
}
}
执行结果为:[1, 2, 3],[4, 5, 6],[7, 8, 9]