java - 如何使用 lambda 遍历嵌套的 Java 集合
问题描述
我通读了几个关于使用 Lambda 操作嵌套 java 集合的线程,但没有一个解决我的具体情况,尽管这个接近然后起飞到不同的方向(flatMap)。请告诉我如何在 Lambda 中编写以下代码。
for(AppUser user : users){
List<CustomerOrder> orders = user.getOrders();
for(CustomerOrder order : orders){
order.setConsumer(user);
List<LineItem> items = order.getLineItems();
for (LineItem item : items){
item.setOrder(order);
}
}
}
谢谢
解决方案
如果您只想进行迭代,forEach
那么 Stream.java 或 Iterable.java 上的方法就足够了。这是使用 for 循环执行您尝试执行的操作的“流式”方式
users.stream().forEach( user ->
user.getOrders().stream().forEach( order -> {
order.setConsumer(user);
order.getLineItems().stream().forEach(
lineItem -> lineItem.setOrder(order)
);
}
));
尽管您实际上并不需要将这些 getter 返回的可迭代对象转换为流。
推荐阅读
- c# - 使用 IDBconnection 执行常规 SQL
- sql - 插入表中截断第一个字符(SQL Server)
- c# - 如何在 C# 中将现有数据库添加到 Web-Api
- flutter - Flutter:如何从 Sharedpreference 数据中设置文本?
- java - 在参数化查询中使用 CONVERT
- excel - 4 个 Excel 公式为 1
- sql - 如何通过 SQL 中特定用户的其他列最大值获取值
- postgresql - 服务器是否在主机“localhost”上运行?
- integromat - 基于我的 Integromat 应用程序的连接参数的输入字段帮助消息
- sql - PostgreSQL 多重 USING 子句