IUnknown:
Tenemos un mapa de Student para grabar Map<Student, StudentRecord>
.
Clase del estudiante es la siguiente:
Student {
String id;
String grade;
Int age;
}
Además, tenemos una lista de identificación de estudiante (List<String>)
proporcionado.
El uso de flujos de Java, ¿cuál sería la forma más eficiente para filtrar los registros de los estudiantes cuyo Id existe en la lista proporcionada?
El resultado esperado es la lista filtrada asignada en contra de la identificación (String) -<Map<Id, StudentRecord>>
Andrónico:
Puede transmitir conjunto de entradas:
map.entrySet().stream()
.filter(e -> list.contains(e.getKey()))
.collect(toMap(Map.Entry::getKey, Map.Entry::getValue));
Si también desea asignar claves de id
campo, entonces:
map.entrySet().stream()
.filter(e -> list.contains(e.getKey()))
.collect(toMap(e -> e.getKey().getId(), Map.Entry::getValue));