Java 8 собирает список, который уже присутствует в объекте - PullRequest
1 голос
/ 07 мая 2019

Я просто искал лучший способ справиться с этим сценарием, используя потоки Java 8.Объект A имеет список объектов b.То, что я получаю, это список объекта A (Список).Мне нужно просмотреть список объектов A и получить все списки B в каждом из объектов A в виде одного списка.

class A {
    List<B> listB
}

Я попробовал приведенный ниже способ, которым он генерирует компиляцию

List<A> as = someObject.getAs();
List<B> listofBs = as.stream().map(in -> in.getListB()).collect(Collectors.toList());

Ответы [ 2 ]

3 голосов
/ 07 мая 2019

Чтобы получить единый список всех B, вы должны использовать flatMap как:

List<B> listOfBs = listOfAs.stream()
        .flatMap(a -> a.getListB().stream())
        .collect(Collectors.toList());
0 голосов
/ 07 мая 2019
Class A{
  List<B> listB
};
List<A> listA;
listA.stream().map(
 a->{
  //some code for A
  a.ListB.stream().map(
   b->{
    // some code for B
  })
});

может быть вам поможет

...