Java中对于键值对,我们习惯使用类HashMap,使用方式:Map<String, String> result=new HashMap<String,String>();

但是这种使用的键Key是区分大小写的,也就是说Name和name会被视为不同的键Key。如果我们需要不区分大小写。那么就要使用类CaseInsensitiveMap。

使用方式,首先引用jar包,pom.xml:

<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.2</version>
</dependency>

然后Java的示例代码如下:

public static void main(String[] args) {
//Map<String, String> result=new HashMap<String,String>();
Map<String, String> result = new CaseInsensitiveMap();
result.put("name", "zhangsan");
result.put("Name", "lisi"); System.out.println(result.get("name"));
System.out.println(result.get("nAme"));
}

输出的结果就是:

lisi

lisi

非常简单,但是注意包名。

//-----------------------------------------------------------------------
/**
* Overrides convertKey() from {@link AbstractHashedMap} to convert keys to
* lower case.
* <p>
* Returns {@link AbstractHashedMap#NULL} if key is null.
*
* @param key the key convert
* @return the converted key
*/
protected Object convertKey(Object key) {
if (key != null) {
char[] chars = key.toString().toCharArray();
for (int i = chars.length - 1; i >= 0; i--) {
chars[i] = Character.toLowerCase(Character.toUpperCase(chars[i]));
}
return new String(chars);
} else {
return AbstractHashedMap.NULL;
}
}

Java不区分大小写的CaseInsensitiveMap的更多相关文章

  1. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  2. Java基础知识【上】(转载)

    http://blog.csdn.net/silentbalanceyh/article/details/4608272 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...

  3. Java学习基础1

    Java 平台: Java API JVM  特点:可跨平台  Java 运行机制:           编译                         运行 Java文件-------> ...

  4. 开始学java痛苦之旅开启 12-31日 第一章节笔记

    1.JDK,Java development kit,开发环境(JDK)2.JRE 是Java运行环境 (Java Runtime Enviroment) 的缩写 我的电脑--属性--工具--文件夹选 ...

  5. 20145330孙文馨 《Java程序设计》第二周学习总结

    20145330孙文馨第二周学习总结 第二周相比于第一周对java语言有了深一点的了解,也意识到多敲代码才是学习计算机语言的最好方法. 教材内容总结 类型.变量与运算符 *基本类型 整数(short. ...

  6. Java学习总结(二)----Java语言基础

    1.     Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...

  7. Java第一天学习笔记整理

    一.关键字 java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名.方法名.类名.包名. 常见的关键字: 用于定义数据类型的关键字 cla ...

  8. Java开发和运行环境的搭建

    Java开发需要准备的东西? JDK+Eclipse 其中JDK的意思是Java开发工具包,Eclipse是进行用于做Java程序开发的工具(当然你也可以用记事本什么的去做). 其他开发工具:JCre ...

  9. Java Hour1

    有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. 本文作者Java 经验约为0 Hour,请各位不吝赐教. Hour1 : 简单 ...

随机推荐

  1. Dada_WenJian

    import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.FileWr ...

  2. 前端利器Emmet

    前端利器Emmet Emmet可以通过缩写生成代码片段,可以提升前端开发的效率.使用方法就是输入HTML或者CSS的缩写,然后按tab键自动生成.原文在这里 后代 > <!-- nav&g ...

  3. vs 基本验证控件使用

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.c ...

  4. bzoj 1008

    记得取模时对答案的处理 #include<bits/stdc++.h> #define ll long long using namespace std; ; ll qpow(ll a,l ...

  5. openstack之Neutron网络模式vlan,gre,vxlan详解

    第一:neutron openvswitch + vlan虚拟网络 一:基础知识 vlan基础知识 1.vlan介绍 1.1:首先说下lan,LAN 表示 Local Area Network,本地局 ...

  6. SSD固态硬盘测试工具收集(持续更新)

    https://www.crsky.com/zhuanti/gutaiyingpanceshi.html https://www.crsky.com/zhuanti/ssdjiance.html ht ...

  7. 大数据学习环境搭建(CentOS6.9+Hadoop2.7.3+Hive1.2.1+Hbase1.3.1+Spark2.1.1)

    node1 192.168.1.11 node2 192.168.1.12 node3 192.168.1.13 备注 NameNode Hadoop Y Y 高可用 DateNode Y Y Y R ...

  8. python下的selenium和PhantomJS

    一般我们使用python的第三方库requests及框架scrapy来爬取网上的资源,但是设计javascript渲染的页面却不能抓取,此时,我们使用web自动化测试化工具Selenium+无界面浏览 ...

  9. RbbitMQ消息队列及python实现

    1.简介 RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件).RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的 ...

  10. debian linux sudo 无法执行以添加普通用户到sudo

    安装debian时,默认创建了root用户,和一个普通用户: 用普通用户登录电脑,无法执行sudo命令: 查看 /etc/sudoers 无此文件: 那么说明,本机没有安装sudo 解决方式: 终端 ...