2011-01-10 12 views
2
import java.util.*; 
public class HashMapExample { 

    public static class WriteOnceMap<K, V> extends HashMap<K, V> { 

     public V put(K key, V value) { 
      /* 
      WriteOnceMap is a map that does not allow changing value for a particular key. 
      It means that put() method should throw IllegalArgumentException if the key is already 
      assosiated with some value in the map. 

      Please implement this method to conform to the above description of WriteOnceMap. 
      */ 
     } 


     public void putAll(Map<? extends K, ? extends V> m) { 
      /* 
      Pleaase implement this method to conform to the description of WriteOnceMap above. 
      It should either 
      (1) copy all of the mappings from the specified map to this map or 
      (2) throw IllegalArgumentException and leave this map intact 
      if the parameter already contains some keys from this map. 
      */ 
     } 
    } 
} 
+3

素敵な宿題、何を試しましたか?あなたの答えは – unbeli

答えて

3
public static class WriteOnceMap<K, V> extends HashMap<K, V> { 
    public V put(K key, V value) { 
     if (containsKey(key)) 
      throw new IllegalArgumentException(key + " already in map"); 

     return super.put(key, value); 
    } 


    public void putAll(Map<? extends K, ? extends V> m) { 
     for (K key : m.keySet()) 
      if (containsKey(key)) 
       throw new IllegalArgumentException(key + " already in map"); 

     super.putAll(m); 
    } 
} 
+0

Xです。あなたは専門家です!助言のために – Mohsin

1

1:ラップのHashMap。

2:または使用:これは宿題であればjava.util.Collections.unmodifiableMap(Map<? extends K, ? extends V>)

dacweは、権利です。

+0

Xより。 – Mohsin

関連する問題