Java: Map里面的键和值可以为空吗?
来源:互联网 发布:用友软件操作流程 编辑:程序博客网 时间:2024/06/06 14:07
在Java中,Map里面的键和值可以为空吗?我们先来看一个例子:
private static void TestHashMap() { // TODO Auto-generated method stub Map<Integer, String> map = new HashMap<Integer, String>(); map.put(0, "0"); map.put(1, null); map.put(null, "2"); map.put(3, ""); map.put(null, "4"); for (Integer key : map.keySet()) { System.out.println("Key-->" + key + " Value-->" + map.get(key)); }}
输出结果:
Key–>null Value–>4
Key–>0 Value–>0
Key–>1 Value–>null
Key–>3 Value–>
由此看来,对于我们平时使用较多的HashMap来说,键和值是可以为null的,map.put(null, “4”)还会覆盖map.put(null, “2”)这个操作。
我们是否可以由此得出Map里面的键和值是否一定可以为null呢?并不一定,再来看一个例子:
private static void TestHashTable() { // TODO Auto-generated method stub Map<Integer, String> map = new Hashtable<Integer, String>(); map.put(0, "0"); map.put(1, null); map.put(null, "2"); map.put(3, ""); map.put(null, "4"); for (Integer key : map.keySet()) { System.out.println("Key-->" + key + " Value-->" + map.get(key)); }}
运行之后,会出现“NullPointerException”异常。
查看Java Api,可以看到:
所以,对于Map里面的键和值是否可以为空的问题,答案是:不一定。对于HashMap来说,可以存放null键和null值,而HashTable则不可以。
对于HashMap和HashTable的区别,可以参考:
https://my.oschina.net/u/1458864/blog/267591
更多思考:
对于第一个例子,我们会发现一个问题:打印HashMap的键和值的时候,输出结果并不是按照我们的插入顺序输出的。很多时候我们希望怎么放进去,就怎么拿出来,这种顺序对于显示或者处理很重要。查看Api后,发现ListOrderedMap可以满足我们的要求,感兴趣的同学可以自己试一下。
0 0
- Java: Map里面的键和值可以为空吗?
- 移除map中值为空的键和值
- unique的数据项可以为空,外键的值也可以为空
- java获取map里面的key和value值
- java里面的集合Collection和Map;
- EL表达式判断Map是否为空和map的取值
- 可以为空值、可以删除显示日期的DateTimePicker
- 可以为空的类型
- 外键可以为空
- Java过滤掉map集合中key或value为空的值
- Hibernate 的javassiste对象在eclipse的debug里面看查看属性为空,使用get方法可以看到属性值
- Oracle数据库里面查询字符串类型的字段不为空和为空的SQL语句:
- Oracle数据库里面查询字符串类型的字段不为空和为空的SQL语句:
- java里面获取map的key和value的方法
- oracle数据库表的外键可以为空
- 5、可以为空的值类型int?
- java处理mysql里面字段的空值
- 数据库外键可以为空
- Tesseract.js相关整理
- C#中内存流MemoryStream至FTP网络流Stream的无缝传输
- Play2.5 scala 学习记录
- 【算法初级】排序 - “Bubble Sort”优化
- 消息摘要算法简介
- Java: Map里面的键和值可以为空吗?
- nginx搭建rtmp协议流媒体服务器
- studio 快捷建
- adb查看安卓手机日志
- C++中引用(&)的用法和应用实例
- 有关GetMemory()问题的思考
- HDU 2767 Proving Equivalences(待完善)
- LeetCode 141. Linked List Cycle
- Uva400 Unix ls 【排序+技巧】【例5-8】