为了账号安全,请及时绑定邮箱和手机立即绑定

Collection<String> coll = map.values();为什么可以直接这样子

Collection<String> coll = map.values();为什么可以直接这样子

肥皂起泡泡 2023-04-09 17:13:23
import java.util.*;class MapDemo {public static void main(String[] args) {Map<String, String> map = new HashMap<String,String>();//添加元素 添加元素,如果出现添加时,相同的键。那么后添加的值会覆盖原有键对应值。//并且put方法会返回被覆盖的值。sop("put:"+map.put("01","zhangsan1"));sop("put:"+map.put("01","123"));map.put("02","zhangsan2");map.put("03","zhangsan3");sop("containsKey:" + map.containsKey("02"));sop("remove:"+map.remove("020"));sop("get:" + map.get("02"));map.put(null,"该值键是null");sop("get:" + map.get(null));map.put("04",null);sop("get:" + map.get("04"));Collection<String> coll = map.values();//这里,为什么可以直接这样子。map不是collection的子接口也不是实现类。sop(coll);sop(map);}public static void sop(Object obj){System.out.println(obj);}}补充一个问题:在添加元素下面的两行代码sop("put:"+map.put("01","zhangsan1"));sop("put:"+map.put("01","123"));这里,为什么如果只打印第一行代码,返回值是null我查看了API,其解释为:以前与 key 关联的值,如果没有针对 key 的映射关系,则返回 null。(如果该实现支持 null 值,则返回 null 也可能表示此映射以前将 null 与 key 关联)。 这段话不是很明白。
查看完整描述

1 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

Collection<String> coll = map.values();
自己查values方法返回值是什么。

map接口的key-value映射关系中,key或value允许为null由具体实现决定。
put方法必须有个返回值,该返回值用来暗示map容器中是否已存在相同的key。
一般情况,如果key已存在,则替换旧的value并返回它,否则创建映射并返回null。
如果map实现允许value为null,那么put一个value为null的映射,再次put进相同key的映射,此时返回值必是null,无法得知是否已存在相同的key。相应了这句话“如果该实现支持 null 值,则返回 null 也可能表示此映射以前将 null 与 key 关联”。

查看完整回答
反对 回复 2023-04-12
  • 1 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信