Java Mapa - ¿Cómo lista de objetos personalizados para recuperar como una sola lista

fittaoee:

Tengo el siguiente mapa de Java, donde los valores son listas de un tipo personalizado (EmployeeInfo):

Map<String, List<EmployeeInfo>> myMap;

Mi objetivo es recuperar todos los valores como una lista única de este mapa. Hasta ahora he intentado lo siguiente, pero no lo he hecho todavía funciona:

// ERROR: The constructor ArrayList<EmployeeInfo>(Collection<List<EmployeeInfo>>) is undefined
List<EmployeeInfo> info = new ArrayList<EmployeeInfo>(myMap.values());

// ERROR: java.lang.ClassCastException: java.util.HashMap$Values cannot be cast to java.util.List
List<EmployeeInfo> info = (List)myMap.values();

¿Alguien podría proporcionar alguna ayuda? ¡Gracias por adelantado!

Sam:

Es necesario para convertir el Map<String, List<EmployeeInfo>>o {[e1,e2], [e3,e4]}a List<EmployeeInfo>o [e1,e2,e3,e4]. Usted puede hacer esto mediante cartografía plana los valores a la lista. Aquí es un método que utiliza corrientes:

List<EmployeeInfo> list = myMap.values() // gives you [[e1,e2],[e3,e4]]
                               .stream() // stream over them
                               .flatMap(List::stream) // convert to [e1,e2,e3,e4]
                               .collect(Collectors::toList); // collect back

Supongo que te gusta

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