数据库字段的名称有的是大写,有的是小写,我们在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的类型对应.