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可以是空吗?的主要内容,如果未能解决你的问题,请参考以下文章

java怎么获取map的key

java怎么获取map的key

EL表达式怎么获取Map的动态key?

JAVA 中 提取 alibaba.fastjson.JSONObject 字符串中的 KEY 和 VALUE 值

mybatis获取map中的key和value

EL表达式怎么获取Map的动态key?