Если во время Collectors.toMap()
обнаружена дублирующаяся ключевая запись, вызывается функция слияния (o1, o2)
.
Вопрос: как я могу получить ключ, вызвавший дублирование?
String keyvalp = "test=one\ntest2=two\ntest2=three";
Pattern.compile("\n")
.splitAsStream(keyval)
.map(entry -> entry.split("="))
.collect(Collectors.toMap(
split -> split[0],
split -> split[1],
(o1, o2) -> {
//TODO how to access the key that caused the duplicate? o1 and o2 are the values only
//split[0]; //which is the key, cannot be accessed here
},
HashMap::new));
Внутри функции слияния я хочу решить на основе ключа, который, если я отменяю отображение, или продолжаю и принимаю эти значения.