Wpis z mikrobloga

Hej, uczę się streamów, dostaję listę id userów List userIds i chciałbym pobrać z bazy userów po id i stworzyć z tego listę.

userIds.stream().map(id -> userRepository.findById(id)) no i teraz jak daję .collect(Collectors.toList()); to zwraca mi List>

Co najlepiej zrobić tutaj?

#java #naukaprogramowania
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

userIds.stream()

.map(repository::getById)

.filter(Optional::isPresent)

.map(Optional::get)

.collect(Collectors.toList());


@NOMUNZNOFUNZ: odpowiedź @m4tus jest spoko. Zmienia optionale na obiekt, prawilnie, po sprawdzeniu, czy jest taki obiekt. Filter odrzuci tych, których nie da się pobrać.
  • Odpowiedz