有時候咱們會須要一個不區分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;//不生效,依舊區分大小寫