Comparar el valor del mapa con una lista utilizando Stream API.
Necesita recopilar el valor común de una lista de cadenas y de un MAP que tiene una cadena como clave y una lista como valor.
Fragmento de código:
public Map<string, list=””> mapeo() throws Exception {
String id = “test”;
List
no.add(“123456”);
no.add(“654321”);
no.add(“11223344”);
Map<string, list=””> info = new HashMap<string, list=””>();
info.put(id, no);
return info;
}
public List getInfo() {
List<string> listNo = new ArrayList<string>();
listNo.add("123456");
listNo.add("654321");
listNo.add("135790");
listNo.add("123987");
listNo.add("11223344");
return listNo;
}
En el tercer método, debe comparar los valores de la lista y el MAP y recopilar los números comunes en una lista. Por favor, guíeme usando JAVA 8 Stream API.</string,></string,></string,>
davy.ai
Para recopilar los valores comunes de una Lista de String y de un Map que tiene String como KEY y List como VALUE, se puede utilizar Java 8 Stream API de la siguiente manera:
En este método, primero llamamos al método
mapping()
para obtener el Map, y luego llamamos al métodogetInfo()
para obtener la Lista de números.Luego usamos el método
stream()
para convertir la Lista de números en un Stream. Aplicamos una operación de filtro al Stream verificando si los valores en el mapa info (que se obtienen aplanando los valores del mapa en un solo stream) contienen el número actual en el Stream.Finalmente, recopilamos los números filtrados en una Lista utilizando el método
collect()
, pasando el métodoCollectors.toList()
como el recolector. Esto devuelve una lista de valores comunes tanto del Map como de la Lista.