Como obter a chave na função de mesclagem Collectors.toMap?
Quando uma entrada de chave duplicada é encontrada duranteCollectors.toMap()
, a função de mesclagem(o1, o2)
é chamado.
Pergunta: como posso obter a chave que causou a duplicação?
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));
Dentro da função de mesclagem, desejo decidir com base nochave que se eu cancelar o mapeamento ou continuar e assumir esses valores.