Intersección entre listas anidadas java 8 corrientes

HashimR:

Tengo una lista anidada de Long. por ejemplo:

List<List<Long>> ids = [[1,2,3],[1,2,3,4],[2,3]];

¿Hay alguna manera el uso de corrientes para crear una nueva lista de elementos que están presentes en todas las listas:

List<Long> result = [2,3];
Ruslan:

Hay solución concisa y sin bastante corriente:

List<Long> result = new ArrayList<>(ids.get(0));
ids.forEach(result::retainAll);

System.out.println(result);

Actualizar : como se mencionó en los comentarios por @ernest_k para evitar lo superfluo retainAll()llamada puede obtener lista secundaria antes:

ids.subList(1, ids.size()).forEach(result::retainAll); 

Supongo que te gusta

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