java.util.map中的key和value可以是空吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java.util.map中的key和value可以是空吗?相关的知识,希望对你有一定的参考价值。
java.util.map中的key和value可以是空吗?
Map是接口,他的两个我们比较常用的实现类是HashMap和Hashtable,其中,HashMap的key和value均可为空,而Hashtable则不可以。所以你问“java.util.map中的key和value可以是空吗?”,答案是:可为空,可不为空,呵呵。 参考技术A 都可以为空
但是如果有多个空健的话,后面的会把前面的覆盖。
你可以做个测试。
public static void main(String[] args)
// TODO Auto-generated method stub
Map map = new HashMap();
map.put(null, null);
map.put(null, null);
map.put("3", null);
for (int i=0;i<map.size();i++)
System.out.println(map.get(null));
System.out.println(map.get("3"));
本回答被提问者采纳 参考技术B key好象是String吧
而value 是 Object的子类
好象是这样 记不太清楚了 还是查API 最稳当 参考技术C 键为空 好像没什么意义
Map
Map:java.util.Map接口
*Map称为查找表,该数据结构体现的样子是一个“多行两列”的表格,左列
*称为key,右列称为value
*Map总是根据key查找对应的value
*存储元素也要求key-value成对存入
*常用的实现类:java.util.HashMap 散列表
* HashMap是基于散列算法实现的Map,是当今世界上最快的查询结构、
若只获取value值,则用get()
删除的remove()方法是成对删除,且返回值是被删除的value值
package map; import java.util.HashMap; import java.util.Map; /** * java.util.Map接口 *Map成为查找表,该数据结构体现的样子是一个“多行两列”的表格,左列 *称为key,右列称为value *Map总是根据key查找对应的value *存储元素也要求key-value成对存入 *常用的实现类:java.util.HashMap 散列表 * HashMap是基于散列算法实现的Map,是当今世界上最快的查询结构 * @author TEDU * */ public class MapDemo1 { public static void main(String[] args) { Map<String,Integer> map=new HashMap<String,Integer>(); map.put("数学", 100); map.put("物理", 97); map.put("化学", 99); map.put("英语", 20); map.put("语文", 98); Integer a=map.put("生物", 97); System.out.println(a); System.out.println(map); //{物理=97, 生物=97, 数学=100, 化学=99, 语文=98, 英语=20} //map的输出顺序与存入顺序不一样, /* * 如果向map中存入的键值对的key值已经存在map中,则不会再继续加入 * 而是替代之前的value值。如果向map中加入的键值对已经存在,用value * 接收返回值,则返回值为替代的value值,如果之前没有这个元素,则返回null。 * * 对于value是包装类的情况,不能直接用基本类型接收返回值,因为会触发 * 自动拆箱特性: * int n=map.put("语文",99); * 下面的代码编译后会改为: * int n=map.put("语文",99).inValue(); * * 若key在Map中不存在,则返回值为null,若拆箱则会引发空指针异常 */ //多少行 int size=map.size(); System.out.println(size); //查看数学的成绩 Integer math=map.get("数学"); System.out.println("数学"+math); /* * 删除元素 * 删除当前map中给定key值对应的这组键值对 * 返回值为该key所对应的value。若给定的key在key中不存在 * 则返回null */ Integer an=map.remove("数学"); System.out.println(an);
//containsKey()与containsValue()判断是否含有指定的key和value boolean key=map.containsKey("化学"); System.out.println("是否含有key:"+key); boolean value=map.containsValue(98); System.out.println("是否含有value:"+value);} }
以上是关于java.util.map中的key和value可以是空吗?的主要内容,如果未能解决你的问题,请参考以下文章