自己编写一个Map

在爱酷学习网上学习Java视频,其中有一个自己实现map的功能,这里记录一下如何实现
package com.jbx.hash;
/**
 * 自定义实现Map的功能 不完美的原因是for循环影响效率
 * @author Administrator
 *Map:存放键值对,根据键对象找对应的值对象,键不能重复
 */
public class SxtMap001 {
	
	SxtEntry[] arr = new SxtEntry[990];
	int size;
	public void put(Object key,Object value){
		SxtEntry e = new SxtEntry(key,value);
		//解决键值唯一的问题
		for (int i=0;i<size; i++){
			if(arr[i].key.equals(key)){
				arr[i].value = value;
				return ;
			}
			
		}
		arr[size++] = e;
	}
	public Object get(Object key){
		for (int i = 0; i < size; i++) {
			if(arr[i].key.equals(key)){
				return arr[i].value;
			}
		}
		return null;
	}
	public boolean containsKey(Object key){
		for(int i =0;i<size;i++){
			if(arr[i].key.equals(key)){
				return true;
			}
		}
		return false;
	}
	public boolean containsValue(Object value){
		for(int i =0;i<size;i++){
			if(arr[i].value.equals(value)){
				return true;
			}
		}
		return false;
	}
	public static void main(String[] args) {
		SxtMap001 m = new SxtMap001();
		m.put("1", "你好");
		m.put("2", "拜拜");
		m.put("2", "拜拜拜");
		System.out.println(m.get("2"));//拜拜拜
		System.out.println(m.containsKey("1"));//true
		System.out.println(m.containsValue("拜拜"));//false
		System.out.println(m.containsValue("拜拜"));//false
		System.out.println(m.get("2"));//拜拜拜
	}
	
}

class SxtEntry{
	Object key;
	Object value;
	public SxtEntry(Object key, Object value) {
		super();
		this.key = key;
		this.value = value;
	}
	
}

猜你喜欢

转载自lovemojienv.iteye.com/blog/2397587