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