java - Java – 组合多个集合
问题描述
我有这段代码,我想使用更多的 Java 8 方法进行重构,但我知道有几个选项可以做到这一点: concat() Java 8 Stream API , flatMap() Java 8 Stream API , Using Guava,使用 Apache Commons Collections、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());
}
解决方案
像这样的东西?
List<User> users = restaurants.parallelStream()
.flatMap(r -> userService.getClients(r.getId()).stream())
.filter(us -> !alreadyNotifiedUserIds.contains(us.getId()))
.collect(Collectors.toList());
推荐阅读
- php - 从一系列繁忙时间 PHP 中获取可用时间
- laravel - 使用 CircleCI 和 Laravel 6 Composer 安装失败
- css - 将大内容与小内容对齐
- sed - sed 用等号替换文本 =
- asp.net - 在 webform 中显示从 REST web 服务检索到的 base64 图像
- go - 如何在应用程序端记录 Cassandra 查询?
- api - Sitecore RESTful API 身份验证不返回令牌
- ios - 更改框架源代码时更新应用程序内的框架
- asp.net-core - Azure,错误 403 - 禁止:需要客户端证书
- php - Mysql SELECT函数在字段列表中返回未知列错误