为什么 Java 的 map.put 方法返回 old value

2019-09-02 20:29:52 +08:00
 mangomickey

从功能来说,这样返回确实很好用。但是不觉得很别扭吗?

3659 次点击
所在节点    Java
11 条回复
lanterboy
2019-09-02 20:39:17 +08:00
你都说了 从功能来说确实很好用了 那还说啥
lihongjie0209
2019-09-02 20:45:50 +08:00
不返回你怎么知道你覆盖了什么值
chendy
2019-09-02 22:12:04 +08:00
你都说真香了,还有什么好说的…
wangsongyan
2019-09-02 22:15:53 +08:00
香就完了
HansCathy
2019-09-03 09:41:10 +08:00
存在即合理
LeeSeoung
2019-09-03 09:46:22 +08:00
那你期望什么值,new value ?你自己 put 的拿不到么,put 之前需要判断是否有 old value,有需要返回,先写 get 再 put ? so,给你返回 old value。
x66
2019-09-03 09:58:50 +08:00
确实想不到都使用 put()来覆盖 oldValue 了,还有什么场景会在后面用到 oldValue
401825317
2019-09-03 16:22:38 +08:00
@x66
比如只是想替换一下 key 的名称
Map<String, Object> param = JSON.parseObject(JSON.toJSONString(userModel, filter));
param.put("a", param.remove("headurl"));
param.put("b", param.remove("gender"));
param.put("c", param.remove("level"));
param.put("d", param.remove("userprivilegelong"));
balaWgc
2019-09-03 16:30:34 +08:00
赞同 6 楼,你自己 put 的 newValue 还需要返回给你吗,这不是脱裤子放屁吗
x66
2019-09-03 16:32:30 +08:00
@401825317 #8 直接 param.get()不行么
tffy
2019-09-29 17:56:08 +08:00
不怪,oldValue 被挤出来了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/597314

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX