java 不區分KEY大小寫的MAP

有時候咱們會須要一個不區分KEY大小寫的MAP,今天介紹一個apache.commons包裏的類:
org.apache.commons.collections.map.CaseInsensitiveMapjava


例子:apache

 public static void main(String[] args) {
  Map<String, Object> result = new CaseInsensitiveMap(); 
  result.put("aaa", "ok");
  System.out.println(result.get("aaa"));
  System.out.println(result.get("aAa"));
  System.out.println(result.get("AAa"));
  System.out.println(result.get("AAA"));
}

輸出:code

ok
ok
ok
ok

 

而HashMap是要區分大小寫的get

例子:it

public static void main(String[] args) {
 Map<String, String> result = new HashMap<String, String>(); 
 result.put("aaa", "ok");
 System.out.println(result.get("aaa"));
 System.out.println(result.get("aAa"));
 System.out.println(result.get("AAa"));
 System.out.println(result.get("AAA"));
}

輸出:io

ok
null
null
null

 

若須要把HashMap轉爲CaseInsensitiveMap,須要putAll,直接等因而不生效的。class

正確:map

Map map = new HashMap();
Map map1 = new CaseInsensitiveMap();
map1.putAll(map );

錯誤:static

Map map = new HashMap();
Map map1 = new CaseInsensitiveMap();
map1 = map;//不生效,依舊區分大小寫
相關文章
相關標籤/搜索