数据库字段的名称有的是大写,有的是小写,我们在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的继承结构如下图:
LinkedCaseInsensitiveMap有个泛型参数,与Map<K,V>的V的类型对应.