地图<;字符串,字符串>;phoneBook=people.stream()
.collect(toMap)(Person::getName,
Person::getAddress);
当发现重复的元素时,我得到java.lang.IllegalStateException:Duplicate key
在向映射添加值时是否可以忽略此类异常
当存在重复项时,只需忽略该重复项即可继续
这可以使用<a href=”的mergeFunction参数实现https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html#toMap-java.util.function.function java.util.function.function java.util.function.BinaryOperator-“rel=”noreferrer“>收集器.toMap(键映射器、值映射器、合并函数):
地图<;字符串,字符串>;电话簿=
people.stream()
.collect(collector.toMap)(
Person::getName,
Person::getAddress,
(地址1、地址2)>{
System.out.println(“找到重复键!”);
回信地址1;
}
));
mergeFunction是一个对与同一个键关联的两个值进行操作的函数地址1对应于收集元素时遇到的第一个地址,地址2对应于遇到的第二个地址:这个lambda只告诉保留第一个地址,而忽略第二个地址