?? yeekumap.java
字號:
import java.util.*;
/**
* @author yeeku.H.lee kongyeeku@163.com
* @version 1.0
* <br>Copyright (C), 2005-2008, yeeku.H.Lee
* <br>This program is protected by copyright laws.
* <br>Program Name:
* <br>Date:
*/
//擴(kuò)展HashMap類,MyMap類要求value也不可重復(fù)
public class YeekuMap<K,V> extends HashMap<K,V>
{
//根據(jù)value來刪除指定項(xiàng)
public void removeByValue(Object value)
{
for (Object key : keySet())
{
if (get(key) == value)
{
remove(key);
break;
}
}
}
//獲取所有value組成的Set集合
public Set<V> valueSet()
{
Set<V> result = new HashSet<V>();
//遍歷所有key組成的集合
for (K key : keySet())
{
//將每個(gè)key對應(yīng)的value添加到result集合中
result.add(get(key));
}
return result;
}
//根據(jù)value查找key。
public K getKeyByValue(V val)
{
//遍歷所有key組成的集合
for (K key : keySet())
{
//如果指定key對應(yīng)的value與被搜索的value相同
//則返回對應(yīng)的key
if (get(key).equals(val)
&& get(key) == val)
{
return key;
}
}
return null;
}
//重寫HashMap的put方法,該方法不允許value重復(fù)
public V put(K key,V value)
{
//遍歷所有value組成的集合
for (V val : valueSet() )
{
//如果指定value與試圖放入集合的value相同
//則拋出一個(gè)RuntimeException異常
if (val.equals(value)
&& val.hashCode() == value.hashCode())
{
throw new RuntimeException
("MyMap實(shí)例中不允許有重復(fù)value!");
}
}
return super.put(key , value);
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -