Conversione di una raccolta di stringhe in una mappa con input come mappatore di chiavi [duplicato]

Aug 25 2020

Ecco un esempio:

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

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

}

Non sono sicuro di come usarlo Collectors.toMap, quindi questo keyè l'elemento stream (qui nel caso l'ID), ed valueè un oggetto costruito da key.

Risposte

1 Eran Aug 25 2020 at 06:36

Stai passando a Stringe Studenta Collectors.toMap(), quando dovresti passare a Function<? super String,? extends String>e a Function<? super String,? extends Student>.

Dovrebbe essere:

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