Map集合中key不存在时使用toString()方法、valueOf()方法和强制转换((String))之间的区别

1、toString()方法

底层代码

public String toString() {
    return this;
}

其返回值为String类型的字符串本身

1 Map<String, Object> params = new HashMap<String, Object>();
2     //Map集合中没有key为1的键值对
3     String result = params.get("1").toString();
4     if (result == null) {
5         System.out.println("result=" + result);
6     } else {
7         System.out.println("result=字符串:" + result);
8 }

2、valueOf()方法

 底层代码

public static String valueOf(Object obj) {
  return (obj == null) ? "null" : obj.toString();
}

返回参数的字符串表示形式,即如果入参为空则返回字符串null即"null",如果入参有值则返回则字符串形式的值

1 Map<String, Object> params = new HashMap<String, Object>();
2     //Map集合中没有key为1的键值对
3     String result = String.valueOf(params.get("1"));
4     if (result == null) {
5         System.out.println("result=" + result);
6     } else {
7         System.out.println("result=字符串:" + result);
8 }

3、(String)强制转换,这种方法并不能强制转换成其他非String类型,但是(String)null这么写合法

1 Map<String, Object> params = new HashMap<String, Object>();
2     //Map集合中没有key为1的键值对
3     String result = (String)params.get("1");
4     if (result == null) {
5         System.out.println("result=" + result);
6     } else {
7         System.out.println("result=字符串:" + result);
8 }

总结:从map集合中获取key对应的value时,如果key不存在,使用String.valueOf(Map.get("key")),得到的结果是String类型null即为"null";如果使用Map.get("key").toString(),

得到的结果是空指针异常;使用(String)Map.get("key"),得到的结果是null。

原文地址:https://www.cnblogs.com/seedling/p/8995004.html

时间: 2024-08-22 05:38:49

Map集合中key不存在时使用toString()方法、valueOf()方法和强制转换((String))之间的区别的相关文章

键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:&quot;java&quot;,&quot;txt&quot;)作为key, 用个数作为value,放入到map集合中,遍历map集合

package cn.it.zuoye5; import java.io.File;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Scanner;import java.util.Set; /** 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt&qu

map集合中value()、keySet()、entrySet()区别

在Map集合中 values():方法是获取集合中的所有的值----没有键,没有对应关系, KeySet():将Map中所有的键存入到set集合中.因为set具备迭代器.所有可以迭代方式取出所有的键,再根据get方法.获取每一个键对应的值. keySet():迭代后只能通过get()取key entrySet(): Set<Map.Entry<K,V>> entrySet() //返回此映射中包含的映射关系的 Set 视图. Map.Entry表示映射关系.entrySet():迭

Map集合中value()方法与keySet()、entrySet()区别

http://blog.csdn.net/liu826710/article/details/9001254 在Map集合中 values():方法是获取集合中的所有的值----没有键,没有对应关系, KeySet():将Map中所有的键存入到set集合中.因为set具备迭代器.所有可以迭代方式取出所有的键,再根据get方法.获取每一个键对应的值. keySet():迭代后只能通过get()取key entrySet(): Set<Map.Entry<K,V>> entrySet(

map集合中的键值对对象遍历

package com.day15.Map; import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set; /* * map集合中的第二种遍历方式 */public class MapFour { public static void main(String[] args) { Map<String, Integer> ma=new HashMap<>();

区分javascript中的toString(),toLocaleString(),valueOf()方法

首先我们随意创建一个对象,这很简单,打开FF浏览器的Firebug切换到控制台或者打开webkit浏览器的审查元素功能. 输入以下内容: var obj1=[1,2,3,4,5] var obj2=[5,4,3,2,1] var obj3=[obj1,obj2] 接着试试调用obj3的toString(),toLocaleString(),valueOf()方法: 根据输出结果可以发现toString()和toLocaleString()方法输出的内容是一样的,且都为字符串形式.而valueOf

js中toLocalString()、toString()和valueOf()方法

所有的对象都具有toLocaleString().toString()和valueOf()方法,toString() 1.Array.toString():将数组转换成一个字符串,并且返回这个字符串.描述:当数组用于字符串环境中时,javascript会调用这一方法将数组自动转换成一个字符串.toString()在把数组转换成字符串时,首先要将数组的每个元素都转换成字符串(通过调用这些元素的toString方法).当每个元素都被转换成字符串时,它就以列表的形式输出这些字符串,字符串之间用逗号分隔

Map集合中get不存在的key值

返回的值是null 测试代码 import java.util.HashMap; import java.util.Map; public class Test { public static void main(String[] args) { Map<String,String> map = new HashMap<>(); String test = map.get("hello"); System.out.println(test); } } 运行结果为

获取map集合中键和值的三种方式

//创建一个map集合 HashMap<String, Integer> map = new HashMap<>(); //添加元素 map.put("小王",25); map.put("小张",35); map.put("小李",20); 方法一:用增强for循环 //用keyset()方法获取所有的键 Set<String> keys = map.keySet(); for(String s:keys){

java读取数据文件,将数据封装到List&lt;Map&gt;集合中

数据文件的格式:第一行是字段名称,用"|"分隔,第二行开始是数据,也用"|"分隔,如下图所示 解析分装到集合的代码如下: package com.ultra.aliyun.control.main; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.util.