所以我試圖創建一個名爲UniqueHashMap的HashMap類的擴展,它具有HashMap類的所有屬性,但不是不能要重複鍵,值不能重複。如果值是重複的,關鍵被替換,如:創建一個java.util.HashMap類的擴展的類
Apple
- >Green
我嘗試put("Pear", "Green")
我們不會有:Pear
- >Green
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class UniqueHashMap extends HashMap {
public UniqueHashMap() {
}
public UniqueHashMap(int arg0) {
super(arg0);
}
public UniqueHashMap(Map arg0) {
super(arg0);
}
public UniqueHashMap(int arg0, float arg1) {
super(arg0, arg1);
}
public V put(K k, V v){
Set entrySet = (Set) hash.entrySet(); //Store entry of HashMap in a set
Iterator entryIterator = entrySet.iterator(); //Create iterator for the set
if(hash.containsValue(v))
{
while(entryIterator.hasNext())
{
Map.Entry mapEntry = (Map.Entry) entryIterator.next();
String key = (String) mapEntry.getKey();
String value = (String) mapEntry.getValue();
System.out.println("Key is = " + key + " and Value is = " + value);
System.out.println();
if (value.equals(v))
{
hash.remove(key);
hash.put(v, value);
break;
}
}
System.out.println(hash);
}
}
正如你所看到的,我擁有超類的所有構造函數,但是它不會解決從類HashMap
(K,V,Hash,Map)
我在做擴展錯誤嗎?還是我缺少一些進口?
爲什麼不直接使用你的值作爲你的密鑰,反之亦然,使用常規的HashMap? – adamdunson 2013-03-15 18:22:12