java映射什么。放回?
我试图获取map接口的put方法的返回类型。当我第一次打印时,它打印空值,在更新密钥后,我得到上一个值。 那么,有人能告诉我map接口中put方法的返回类型是什么吗
Map<Integer, String> map = new HashMap<Integer, String>();
System.out.println(map.put(1, "ABC"));
System.out.println(map.put(1, "XYZ"));
Output:
null
ABC
# 1 楼答案
根据java文档:
在你的例子中,当你使用
map.put(1, "ABC")
时,没有任何东西与key 1
相关,所以它returns null
但是当你使用put(1, "XYZ")
时,那么已经有一个entry exists
与key 1
相对,所以它返回“ABC”# 2 楼答案
你可以在文件中阅读:here
既然你的地图被宣布为
值V是字符串类型,因此调用put将返回字符串
但是我得到的价值是什么<也许你在问自己
然后深入查看源代码
HashMap的put方法实际上是调用最后一个方法putVal
其实现方式如下:
在逻辑中,方法返回给定键在映射中找到的前一个值
这意味着你第一次这么做
put(1,"abc");
它返回null,因为地图中没有任何内容。 如果你再这样做put(1,"xyz");
然后该方法返回“abc”,因为这是在映射中找到的键=1的最后一个值