看一个例子
import java.util.HashMap;
import java.util.Map;
public class MapTest {
@org.junit.Test
public void test() {
Map<Integer, Map<Integer, String>> big = new HashMap<Integer, Map<Integer,String>>();
for(int i = 0; i < 10; i++) {
Map<Integer, String> small = new HashMap<Integer, String>();
small.put(i, String.valueOf(i));
big.put(i, small);
}
System.out.println(big);
long key = 2L;
System.out.println(big.get(key));
int k2 = 2;
System.out.println(big.get(k2));
}
}
输出如下:
{0={0=0}, 1={1=1}, 2={2=2}, 3={3=3}, 4={4=4}, 5={5=5}, 6={6=6}, 7={7=7}, 8={8=8}, 9={9=9}, 10={10=10}}
null
{2=2}
可以看到,使用long型作为key并不会报错,只是遗憾的取不到数据。
HashMap#get(Obecect obj)方法使用的参数是Object类型,也就是使用任何参数都不会报错,在一般情况下,如果key是复杂对象,写代码时都能注意到。
不巧的是这个case里使用Integer类型作为key,而又用long类型去get,经过装箱后实际上是使用Long作为key查询,自然也就查不到数据。
修改的方式也比较简单,显式的修改参数类型。
System.out.println(big.get(Integer.valueOf(key)));
分享到:
相关推荐
1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出...
支持一个List<Map>按照MAP中的一个或者多个Key的value值的中英文来排序,自动识别字符和数字(包括[a-zA-z]?[0-9]*)排序
由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。 18、heap和stack有什么区别。 栈是...
31、怎么获取Map所有的key,所有的value 77 32、获取Class的实例有几种方式 77 33、怎么获取类中所有的方法,所有属性 77 34、JDBC常用接口有哪些? 77 35、Statement 中execute、executeUpdate、executeQuery这三者...
关于java程序员发展需要学习的路线整理集合 技术 应用技术 计算机基础知识 cpu mem disk net 线程,进程 第三方库 poi Jsoup zxing Gson 数据结构 树 栈 链表 队列 图 操作系统 linux 代码控制...
poi解析excel功能参数说明 ...这个与上面工具类类似,不过这个是解析本地excel文件不是使用的流,使用迭代遍历sheet工作簿与每行每列的值,将所有类型作为String类型处理返回一个json对象输出至控制台
由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。 21、heap和stack有什么区别。 ...
import java.util.Scanner; class Bissextile{ public static void main(String[] arge){ System.out.print("请输入年份"); int year; //定义输入的年份名字为“year” Scanner scanner = new Scanner(System.in...
1、JsonObject中的数据是key-value形式,通过JsonObject的keys方法得到key的迭代器是无序的,要想实现排序,目前只能通过加装一层处理(方法来自Stack Overflow,感谢大神),将key-vlaue放入ThreeMap排序,排序规则...
FreeMarker的表达式输出变量时,这些变量可以是顶层变量,也可以是Map对象中的变量,还可以是集合中的变量,并可以使用点(.)语法来访问Java对象的属性.下面分别讨论这些情况 1,顶层变量 所谓顶层变量就是直接放在数据...
表示从json中读取某个Map类型key的值 源码可见JSONUtils.java,更多方法及更详细参数介绍可见JSONUtils Api Guide。 7、FileUtils 文件工具类,可用于读写文件及对文件进行操作。如: readFile(String filePath) ...
Java HashMap的key是Object类型,所以可以任何类型的参数,而JS的key只能是字符串或是数字。 你也许会说,obj={};map[obj]=1;这段代码传入了既不是数字也不是字符的key,但也没发生错误啊。那是因为解释器将obj对象...
c#原始码转Java原始码的json11 json11是用于C ++ 11的微型JSON库,提供JSON解析和序列化。 该库提供的核心对象是json11 :: Json。 Json对象代表任何JSON值:null,bool,数字(整数或双精度),字符串(std :: ...
MAP阶段:将数据源的VALUE作为key输出,VALUE随意<KEY> REDUCE阶段:因为是去除重复,<KEY>>, 将以上的数据源只保留KEY值进行输出即可。 Sort MAP阶段:将数据进行读取,输出key值为IntWritable,hadoop会对其进行...
{2.1.2}Java变量类型}{47}{subsection.2.1.2} {2.1.3}面向对象的编程}{47}{subsection.2.1.3} {2.2}继承}{48}{section.2.2} {2.2.1}super(), this()}{49}{subsection.2.2.1} {2.2.2}方法重写/覆盖}{50}{...
@TemporalType.(DATE,TIME,TIMESTAMP) 分别Map java.sql.(Date, Time, Timestamp). @Lob 注解属性将被持久化为 Blog 或 Clob 类型。具体的java.sql.Clob, Character[], char[] 和 java.lang.String 将被持久化为 ...
// 将数据的英文字段作为key,对映值转换为相应类型 datamap.put(e.getColumn(), obj); } } list.add(datamap); } } return list; } /** 将参数转换为数据库数据 */ public Object convertDataType...
[ {“Akey”:”Avalue”},{“Akey1”:”Avalue1”}, {“Bkey”:”Bvalue”},{“Bkey1”:”Bvalue1”}, ] hashes {“you”:”a”,”me”:”b”,”he”:”c”} 注释标志 这里是注释 --> 旧版本的freemarker采用...