Java - объединение нескольких коллекций - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть этот фрагмент кода, который я хочу реорганизовать с использованием большего подхода Java 8, но я знаю, что есть несколько вариантов сделать это: concat () Java 8 Stream API, flatMap () Java 8 Stream API,Используя Guava, Используя Коллекции Apache Commons, CompletableFuture .... Я хотел бы знать, есть ли лучший способ сделать это

List<User> users = new ArrayList<User>();    
for (Restaurant restaurant : restaurants) { 
    users.addAll(userService.getClients(restaurant.getId())
                            .parallelStream()
                            .filter(us -> !alreadyNotifiedUserIds.contains(us.getId())))
                            .collect(Collectors.toList());  
}

1 Ответ

0 голосов
/ 03 декабря 2018

Как то так?

List<User> users = restaurants.parallelStream()
    .flatMap(r -> userService.getClients(r.getId()).stream())
    .filter(us -> !alreadyNotifiedUserIds.contains(us.getId()))
    .collect(Collectors.toList());  
...