1. 程式人生 > >Java之Map實現初級版

Java之Map實現初級版

package learn.java.cn.collection;

public class MyMap {
	int size=0;
	DefMap [] defMap=new DefMap[999];
	public void put(Object key,Object value)
	{	//判斷是否健值 相等,若是相等,則替換
		for(int i=0; i<=size;i++)
		{	
			if (defMap[i]!=null && defMap[i].key.equals(key))
			{
				defMap[i].value=value;
				return ;
			}
		}
		defMap[size++]=new DefMap(key,value);
		
	}
	
	
	public Object get (Object key)
	{
		for(int i=0;i<size;i++)
		{
			if (defMap[i].key.equals(key))
				return defMap[i].value;
		}
		return null;
	}
	
	
	public DefMap [] remove(Object key)
	{

		for(int i=0;i<size;i++)
		{
			if (defMap[i].key.equals(key))
			{
				for (;i<=size-2;i++)
				{
					defMap[i]=defMap[i+1];
				}
				defMap[size-1]=null;
				return defMap;
			}
		}
		
		return null;
	}
	
	
	
	public int size()
		{	int i;
			for ( i=0;i<size;i++)
			{
				if (defMap[i]==null)
					break;
			}
		
			return i;
		}
	
	
	

	


public static void main(String args[])
{
	MyMap Map=new MyMap();
	Map.put("王尚權", "小靜");
	Map.put("目中", "楊冪");
//	Map.put("王尚權", "趙麗穎");
	Map.put("張山","李四");
	System.out.println(Map.get("王尚權"));
	System.out.println(Map.get(new String("王尚權")));//新建不同的物件,
	//但是equals()比較的是內容返回的是一致的
//	System.out.println(Map.defMap[1].value);
	System.out.println(Map.get("張山"));

	System.out.println(Map.size());
	Map.remove("王尚權");
	System.out.println(Map.defMap[0].value);
	System.out.println(Map.size());
}

}




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