Ich habe eine Map<String, String>
, die ich in eine Map<Type1,Type2>
mit Java-Streams transformieren möchte. DieseWie transformiert man den Schlüssel und den Wert eines jeden Eintragssatzes einer Map mit Java 8?
ist, was ich versucht, aber ich glaube, ich bin die Syntax falsch bekommen:
myMap.entrySet()
.stream()
.collect(Collectors.toMap(e -> Type1::new Type1(e.getKey()), e -> Type2::new Type2(e.getValue))));
versuchte auch
myMap.entrySet()
.stream()
.collect(Collectors.toMap(new Type1(Map.Entry::getKey), new Type2(Map.Entry::getValue));
Aber ich einfach Fehler laufen kompilieren. Wie mache ich diese Transformation?
Ist es notwendig, Streams zu verwenden? Oft ist es am einfachsten, mit dem einfachen Code zu beginnen und dann Streams zu verwenden, wenn Sie es vereinfachen möchten. Für Ihre Aufgabe würden Sie map() nach stream() aufrufen. Streams und Lambda-Funktionen sind ein Problem, weil die Eingabe für den Benutzer vage ist. Das ist meine Warnung. Viel Glück. Und ein Hinweis, der in die richtige Richtung ist ... https://www.mkyong.com/java8/java-8-filter-a-map-examples/ – ldmtwo
Ihre Syntax für 'collect' und' Collectors.toMap' ist richtig. Ich habe versucht, den gleichen Code mit diesem sammeln: 'Map x = map.entrySet(). Stream(). Sammeln (Collectors.toMap (e -> Integer.parseInt (e.getKey()), e - > Integer.parseInt (e.getValue()))); '. Es klappt. –