转载

不区分key大小写的LinkedCaseInsensitiveMap

数据库字段的名称有的是大写,有的是小写,我们在java程序里面从数据库查询记录的时候,经常使用List<Map<String,Object>>来存放获取到的数据库记录,使用的时候为了程序的健壮性,经常要再循环一次,然后把map的key都转为大写或者都转为小写,这样既多写了很多代码,让本来不复杂的程序变得晦涩难懂,也降低了程序的性能,有没有一种map,它的key是不区分大小写的呢?如果这样的话,在程序中使用的时候就方便多了。本次介绍的LinkedCaseInsensitiveMap就是。LinkedCaseInsensitiveMap类位于org.springframework.util.LinkedCaseInsensitiveMap包下,是spring提供的一个工具类。

测试程序:

import java.util.HashMap;
import java.util.Map;

import org.springframework.util.LinkedCaseInsensitiveMap;

public class App {
 public static void main(String[] args) {
 Map<String, Object> map=new HashMap<String, Object>();
 map.put("a", "a");
 System.out.println(map.get("A"));
 
 Map<String, Object> linkedCaseInsensitiveMap=new LinkedCaseInsensitiveMap<Object>();
 linkedCaseInsensitiveMap.put("B", "B");
 linkedCaseInsensitiveMap.putAll(map);
 System.out.println(linkedCaseInsensitiveMap.get("b"));
 System.out.println(linkedCaseInsensitiveMap.get("A"));
 
 }
}

运行结果:

null
B
a
LinkedCaseInsensitiveMap的继承结构如下图:

aHR0cDovLzEwNi4xNC4yMjcuNTAvdXBsb2Fkcy9pbWFnZS8yMDE4LzAxLzE1MTU0MzgzNTUwODAwNDkxMDgucG5n

LinkedCaseInsensitiveMap有个泛型参数,与Map<K,V>的V的类型对应.
正文到此结束
Loading...