Iterar sobre la lista de objetos dentro de otro objeto que tengo en la Lista

erykzabujca:

Así que he estructura como la

List<Object1> list1

class Object1{
   private List<Object2> list2
}
class Object2{
   private List<Object3> list3
} 

Y lo que necesito para obtener el recuento de todos los casos Objects3. Soy nuevo en java-8 y arroyos así que es bastante confuso para mí, pero he intentado hacer algo bajo el estilo.

Integer count =
                list1
                .parallelStream()
                .reduce(0,(sum, q) -> q.getList2()
                        .forEach()
                        .reduce(0,(sum2, q2) -> sum2 + q2.getList3().size()));

Soy yo ni siquiera cerca?

Ousmane D .:

No te culpo, dado que usted es nuevo en la API de flujo, pero sea excesivamente complicada su enfoque.

Yo personalmente iría con este enfoque para la simplicidad y facilidad de lectura.

list1.stream() // Stream<Object1>
     .flatMap(s -> s.getList2().stream()) // Stream<Object2>
     .flatMap(s -> s.getList3().stream()) // Stream<Object3>
     .count(); // return the count of all Object3 instances

Supongo que te gusta

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