中易网

java中map put方法的问题

答案:5  悬赏:60  
解决时间 2021-01-15 07:19
  • 提问者网友:玫瑰园
  • 2021-01-15 00:48
java中map put方法的问题
最佳答案
  • 二级知识专家网友:七十二街
  • 2021-01-15 01:55
public static void main(String[] args) {

    Map> map = new HashMap>();
    map.put("1", null);  

    List list1 = map.get("1");//存入的是null  取出来肯定也是null ,不管赋给哪个引用变量
     if (list1 == null) {
//所以这个判断一定会进入 
      list1 = new ArrayList();//这里是把list1指向   一个  ArrayList对象  
 //map.put("1", list1);//把指向的ArrayList对象存入
 }
    System.out.println(map.get("1"));//再取出打印 

放开这一句 map.put("1", list1);  打印:[ ]   是因为ArrayList对象是没元素的,toString打印就是[]
注释掉这一句 map.put("1", list1);  打印:null  是因为list1指向的是null
全部回答
  • 1楼网友:走死在岁月里
  • 2021-01-15 06:06
你刚开始就map.put("1", null)了,如果不放开注释就是null,放开的话map重新map.put("1", list1);给1的位置放了一个空的list集合对象,这个对象元素是空的,自己本身不是空的(开辟内存空间了)
  • 2楼网友:老鼠爱大米
  • 2021-01-15 05:35
list1 = new ArrayList();仔细考虑这条语句。这条语句是你重新创建一个新的List所以你put一个list1和不put是有区别的!
  • 3楼网友:独行浪子会拥风
  • 2021-01-15 04:30
你注释掉那句话,key为1对应的value是初始化的list1所以是[],注释叼就是null、这个有什么冲突吗、
  • 4楼网友:过活
  • 2021-01-15 03:13
Map> map = new HashMap>();
map.put("1", null);
List list1 = map.get("1");
if (list1 == null) {
list1 = new ArrayList();
System.out.println(list1); // 这个list1 new 出来后就是 []
//map.put("1", list1); //这里重新 map.put 因为键相同 ,会覆盖前面的那个
}
System.out.println(map.get("1"))
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息