Konvertieren der String-Sammlung in eine Map mit Eingabe als Key Mapper [Duplikat]

Aug 25 2020

Hier ist ein Beispiel:

Map<String, Student> getStudentsById(Collection<String> ids) {

  return ids.stream()
       .collect(Collectors.toMap(<id-here>, id -> new Student(id))

}

Ich bin mir nicht sicher, wie ich es verwenden Collectors.toMapsoll. Das keyist also das Stream-Element (hier für den Fall die ID) und valueein Objekt, das aus dem erstellt wurde key.

Antworten

1 Eran Aug 25 2020 at 06:36

Sie übergeben a Stringund a Studentan Collectors.toMap(), wenn Sie a Function<? super String,? extends String>und a übergeben sollten Function<? super String,? extends Student>.

Es sollte sein:

Map<String, Student> idToStudent = ids.stream()
     .collect(Collectors.toMap(Function.identity(), id -> new Student(id)));