【Thinking in Java】Map通过关联数组的简单实现

参考: Thinking in Java

简介

Map的数据保存是以键值对的形式进行数据的保存,这种键值对的关联形式又叫映射表,或者说关联数组,那么如何用一个简单的数组来实现Map的基本形式.

代码

/**
 * @description 关系数组,又称为映射表
 * 这是Map实现的基本思想,即用键值对的形式保存数据
 * @author paul
 * @date 2017年6月14日 下午3:06:59 
 * @update 2017年6月14日 下午3:06:59 
 * @version V1.0
 */
public class AssociativeArray {
	private Object[][] pairs;
	//关联数组的下标
	private int index;
	
	public AssociativeArray(int length) {
		pairs = new Object[length][2];
	}
	
	/**
	 * @param key
	 * @param value
	 * @description 放入元素
	 * @author paul
	 * @date 2017年6月14日 下午3:22:25
	 * @update 2017年6月14日 下午3:22:25
	 * @version V1.0
	 */
	public void put(K key, V value) {
		if (index >= pairs.length)
			throw new ArrayIndexOutOfBoundsException();
		pairs[index++] = new Object[]{key, value};
	}
	
	/**
	 * @param key
	 * @return
	 * @description 根据key值取出元素
	 * @author paul
	 * @date 2017年6月14日 下午3:22:33
	 * @update 2017年6月14日 下午3:22:33
	 * @version V1.0
	 */
	@SuppressWarnings("unchecked")
	public V get(K key) {
		//遍历关联数组,找到key相等的,返回value
		for (int i=0; i aa = new AssociativeArray(2);
		aa.put("1", "语文");
		aa.put("2", "English");
		System.out.println(aa.index);
		System.out.println(aa.toString());
	}
}

你可能感兴趣的:(书籍博客)