自学过程中,在将list转成map集合,调用Collectors.toMap时,定义key,value赋值规则时,报错:Duplicate key 女
public class StreamDemo2 {
public static void main(String[] args) {
ArrayList<String> list2 = new ArrayList<>();
list2.add("张三1-男-13");
list2.add("张三2-女-14");
list2.add("1-女-15");
list2.add("1-男-16");
//要求:转map集合,获取大于14且将其转换成 姓名-性别 格式的map集合
Map<String, String> collect1 = list2.stream().
filter(x -> Integer.parseInt(x.split("-")[2]) > 14)
.collect(Collectors.toMap(
s -> s.split("-")[0], s -> s.split("-")[1]
));
System.out.println(collect1);
}}
在度娘了以后,要保证源数据的中作为key的值要唯一,否则会报错。
解决方案:
将1改成2,运行如下,显示成功。
![](https://img-blog.csdnimg.cn/img_convert/62150150fd2746b1626b91bc7be212f6.png)
愚见,
愚见!
再见,
再见!