package cn.com.commsoft.map;
public class MyMap {
MyEntry[] arr = new MyEntry[100];
int size;
/**
* 采用hash算法实现map,(每个对象都有一个地址,
* 根据地址生成的一个hash码,由于每个对象的地址都不一样,所以
* 生成的hash码是唯一的)
* @param key
* @param value
*/
public void put(Object key, Object value){
MyEntry my = new MyEntry(key, value);
//相当于地址映射函数,但是会产生地址映射冲突
int a = (key.hashCode()%100);
//思路一:当地址冲突时,采用开放地址法处理冲突
while(arr[a].key != null){
a++;
}
//思路二:当地址冲突时,采用链表法处理冲突
arr[a] = my;
}
public Object get(Object key){
int a = (key.hashCode()%100);
return arr[a].value;
}
}
class MyEntry{
Object key;
Object value;
public MyEntry(Object key, Object value) {
super();
this.key = key;
this.value = value;
}
}内容还会继续更新,敬请关注!
原文地址:http://blog.csdn.net/xu758142858/article/details/45397251