码迷,mamicode.com
首页 > 编程语言 > 详细

Java Map底层实现思路

时间:2015-04-30 18:10:30      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:map   java   算法   hash   链表   

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;
	}
	
}
内容还会继续更新,敬请关注!

Java Map底层实现思路

标签:map   java   算法   hash   链表   

原文地址:http://blog.csdn.net/xu758142858/article/details/45397251

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!