Map<String, String> phoneBook = people.stream()
.collect(toMap(Person::getName,
Person::getAddress));
当找到重复的元素时,我得到 java.lang.IllegalStateException: Duplicate key
。
是否可以在向地图添加值时忽略此类异常?
当有重复时,它应该通过忽略重复的键来继续。
原文由 Patan 发布,翻译遵循 CC BY-SA 4.0 许可协议
这可以使用 --- 的
Collectors.toMap(keyMapper, valueMapper, mergeFunction)
mergeFunction
参数:mergeFunction
是一个对与同一键关联的两个值进行操作的函数。adress1
对应于收集元素时遇到的第一个地址adress2
对应于遇到的第二个地址:这个 lambda 只是告诉保留第一个地址并忽略第二个地址。