Collections.unmodifiableMap()的簡單解釋

網絡上看到的解釋

public static <K,V> Map<K,V> unmodifiableMap(Map<? extends K,? extends V> m)返回指定映射的不可修改視圖。此方法允許模塊爲用戶提供對內部映射的“只讀”訪問。在返回的映射上執行的查詢操作將“讀完”指定的映射。試圖修改返回的映射(不管是直接修改還是通過其 collection 視圖進行修改)將導致拋出 UnsupportedOperationException。
如果指定映射是可序列化的,則返回的映射也將是可序列化的。


參數:
m - 將爲其返回一個不可修改視圖的映射。
返回:
指定映射的不可修改視圖。

// 實現原是是包裝了下map 不支持改變大小的操作 
        // 僅僅返回的Map不能put remove 操作, 
        // 但可以對裏的對象進行操作


使用例子

  protected Map<String,String> parseArgs(String[] args) {
    if (args == null || args.length % 2 != 0) {
      throw new IllegalStateException("Cannot convert args!");
    }

    Map<String,String> parsedArgs = new HashMap<String,String>();
    for (int n = 0; n < args.length; n+=2) {
      parsedArgs.put(args[n], args[n+1]);
    }
    return Collections.unmodifiableMap(parsedArgs);
  }

參考 :http://www.iteye.com/problems/85843



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章