Łączenie dwóch list w streamie

Łączenie dwóch list w streamie
PL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 45
0

Hej, mam dwie klasy:
Student:

Kopiuj
public class Student{
List<Addresses> addresses;
}

oraz Teacher:

Kopiuj
public class Teacher{
List<Addresses> addresses;
}

Oraz metodę przyjmującą listę adresów w zupełnie innej klasie

Kopiuj
metoda(List<Address> addresses){}

Jak najsprawniej wyciągnąć z obiektów teacher i student listy adresów i przekazać do powyższej metody jako jedna lista?

Charles_Ray
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1912
0

Na początek nadmienię, że nie widzę tutaj żadnego Streama. Dlaczego nie możesz zrobić np. tak:

Kopiuj
List<Addresses> allAddresses = new ArrayList<Addresses>(student.getAddresses());
allAddresses.addAll(teacher.getAddresses());

metoda(allAddresses);

Ewentualnie może Cię zainteresować metoda https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#concat-java.util.stream.Stream-java.util.stream.Stream-

YA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2384
1

Concat ?

Kopiuj
Stream<Address> addresses = Stream.concat( teacher.getAddresses().stream(), student.getAddresses().stream() ) ;

costam.foobar.metoda(adresses);

Chyba, że Adressess i Adress w Twoim przykładzie, to zupełnie inne klasy...

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.