黑马程序员技术交流社区

标题: Map [打印本页]

作者: 280270738    时间: 2013-6-23 16:03
标题: Map
本帖最后由 Super_Class 于 2013-6-24 18:20 编辑

Map集合中put方法返回的是Value的值。
System.out.println(map.put("01","a"));为什么返回的不是a?
作者: 周朝    时间: 2013-6-23 16:36
代码如上,输出结果为:
null
11
12
null。


在查看API中,上边已经写到,用我们的话说,就是:Map中的put()方法,返回的是相同key值对应的上一个键值对的value值。看代码以及结果,应该有所明白噢,不明白留言

作者: 万琪    时间: 2013-6-23 16:37
你确定put是两个参数??如果照你这么分析,,put(1,a)..reture a....也不是多余吗,,传进去a又返回a
作者: 周朝    时间: 2013-6-23 16:38
//Map中的put()方法,返回的是相同key值对应的上一个键值对的value值
        Map<String, Integer> map=new HashMap<String, Integer>();
        System.out.println(map.put("11", 11));
        System.out.println(map.put("11", 12));
        System.out.println(map.put("11", 13));
        System.out.println(map.put("14", 14));
代码如上,输出结果为:
null
11
12
null。


在查看API中,上边已经写到,用我们的话说,就是:Map中的put()方法,返回的是相同key值对应的上一个键值对的value值。看代码以及结果,应该有所明白噢,不明白留言
作者: ybxiang    时间: 2013-6-23 17:05
通过查看API知道
the value of any previous mapping with the specified key or null if there was no mapping.
put方法返回的是对应的key:"01",之前是否有映射赋值,如果没有返回null,
此时LZ第一次使用map.put("01","a")为key“01”赋值,所以返回值为null,
如果LZ在打印输出之前加上一句map.put("01","BBBBB");此时打印输出将会时BBBBB。

总之一一句话,返回值就是检查当前key之前是否有被赋值,如果没有返回null,如果有返回上一次所赋值。
作者: 杨增坤    时间: 2013-6-24 16:07
public static void main(String[] args) {
                // TODO Auto-generated method stub
                Map map=new HashMap();
                map.put("a", "hello world");//增加值
                String s=(String)map.get("a");//通过键 获取值
    System.out.println(s);
        }
结果:hello world  希望对你有帮助,可以查看API文档,这样更容易理解




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