A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小蚊子 中级黑马   /  2013-12-20 22:00  /  906 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

对于一个Map,我使用map.put(key,null)之后,有没有改变map的内容?

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 有~~~

查看全部评分

3 个回复

倒序浏览
有,你让一个叫 Key 的键 指向了 null 这个值,你可以用keySet方法,取到这个键

你可以这么理解:虽然null是默认所有未声明的键的值,但是你现在声明了 一个键 只是它的值还是null

import java.util.*;

class Demo
{
        public static void main(String[] args){
                Map<String,String> m = new TreeMap<String,String>();
                m.put("Key", null);
                m.put("AA", "1");
                Set<String> s = m.keySet();
                Iterator<String> it = s.iterator();
                while (it.hasNext()){
                        System.out.println(it.next());
                }
        }
}

结果 :AA
          Key

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 赞一个!

查看全部评分

回复 使用道具 举报
改变了,你的map中有个一个元素,这个元素的key值对应的值是null。
回复 使用道具 举报
Map中存储的是键值对,你添加的key所对应的value就是null ,你要注意,这时候不能用Hashtable,它是不允许null作为key和value的。hashmap和treemap 均可。

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 鼓励新同学、

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马