¿Cómo obtener la clave en la función de combinación Collectors.toMap?
Cuando se encuentra una entrada de clave duplicada duranteCollectors.toMap()
, la función de fusión(o1, o2)
se llama.
Pregunta: ¿cómo puedo obtener la clave que causó la duplicación?
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 de la función de fusión que quiero decidir en función de lallave que si cancelo el mapeo, o continúo y tomo esos valores.