黑马程序员技术交流社区

标题: Map集合,put函数返回值问题 [打印本页]

作者: 王得新    时间: 2012-9-30 09:46
标题: Map集合,put函数返回值问题
本帖最后由 王得新 于 2012-9-30 16:31 编辑

        Map<String,String> map=new HashMap<String,String>();
        System.out.println(map.put("01", "value1"));//文档上说put()函数返回的是存入键所对应的值(应该是value1),可是为什么输出的是null呢
        map.put("02", "value2");
        map.put("03", "value3");

作者: 尤洋    时间: 2012-9-30 09:55
返回:
以前与 key 关联的值,如果没有针对 key 的映射关系,则返回 null。(如果该实现支持 null 值,则返回 null 也可能表示此映射以前将 null 与 key 关联)。
作者: 谭立文    时间: 2012-9-30 10:26
专业的说:与 key 关联的旧值;如果 key 没有任何映射关系,则返回 null。(返回 null 还可能表示该映射之前将 null 与 key 关联。)
简单的时候就是当你用同样的key去替换之前的key时 有返回值 不管是vlaue和之前相同还是不相同。 返回被替换之前key对应的值
package com.wenfengkeji.heima;

import java.util.HashMap;
import java.util.Map;

public class Demo4 {

        public static void main(String[] args) {
                Map<String,String> map = new HashMap<String,String>();
                System.out.println(map.put("1", "a"));
                System.out.println(map.put("1", "b"));
                map.put("3", "b");  
                map.put("4", "b");
        }

}

作者: 覃宏海    时间: 2012-9-30 10:34
看看毕老师画的那张图你就明白了
作者: 罗雪梅    时间: 2012-9-30 10:41
V put(K key, V value)
          将指定的值与此映射中的指定键关联,返回类型是一个与key键对应的value的类型值,因为key键值唯一性的特点:如果集合中有这个key,那么返回的就是被这个value所替换掉的那个旧值,如果集合中这个key值第一次出现没有与之对应的key那么就把这一组键值队存入到集合中,而返回值就为Null了。
作者: y510662669    时间: 2012-9-30 10:57
看了API,我发现,它是这么解释的:
以前与 key 关联的值,如果没有针对 key 的映射关系,则返回 null。(如果该实现支持 null 值,则返回 null 也可能表示此映射以前将 null 与 key 关联)。
这句话我也有点小迷茫,同样求高手指点:
楼主如果真想要取得值的话,可以用map.get("01")
我也是菜鸟,还请高手指点!
作者: 李润根    时间: 2012-9-30 11:07
put()方法,是返回前一个值,你可以把3条语句都打印一下,就明白了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2