그래서 HashMap 클래스의 모든 속성을 가진 UniqueHashMap이라는 확장 클래스를 만들려고합니다. 반복되는 키를 사용하려면 값을 반복 할 수 없습니다. 값이 반복되면, 키는 대체됩니다, 예를 들면 :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, 해시, 맵)에서 내재해야하는 값을 해결하지는 않습니다.
연장을 잘못하고 있습니까? 또는 나는 몇몇 수입품을 놓치고 있는가?
정규 HashMap을 사용하여 값을 키로 사용하거나 그 반대로 사용하지 않는 이유는 무엇입니까? – adamdunson