Lista de intersección con las teclas de Mapa

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 idcampo, entonces:

map.entrySet().stream()
    .filter(e -> list.contains(e.getKey()))
    .collect(toMap(e -> e.getKey().getId(), Map.Entry::getValue));

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=361774&siteId=1
Recomendado
Clasificación