【发布时间】:2021-03-04 21:14:06
【问题描述】:
前段时间有人问过这个question:
输入字符串:utilMapString = "1=1,2=2,3=3,4=4,5=5"
Map<String, String> reconstructedUtilMap = Arrays.stream(utilMapString.split(","))
.map(s -> s.split("="))
.collect(Collectors.toMap(s -> s[0], s -> s[1]));
如果我将输入更改为“101|Google,102|Amazon”并执行相同的转换,代码会抛出 IllegalStateException: Duplicate key
Map<String, String> reconstructedUtilMap = Arrays.stream(utilMapString.split(","))
.map(s -> s.split("|", 2))
.collect(Collectors.toMap(s -> s[0], s -> s[1]));
谁能解释一下这两组操作的确切区别。
【问题讨论】:
-
提示:
"101|Google,102|Amazon".split("|")的结果不是我认为你期望的那样 -
非常感谢@JonSkeet,得到了我所缺少的东西。
标签: java java-stream