java - 在 lambda forEach() 中处理多个列表
问题描述
有什么办法可以用 lambdas/streams 做到这一点?
public List<CartItem> getCartItems() {
List<CartItem> items = new ArrayList<>();
for (int ctr = 0; ctr < names.size(); ctr++) {
items.add(new CartItem(names.get(ctr), prices.get(ctr), quantities.get(ctr), subTotals.get(ctr)));
}
return items;
}
解决方案
您可以使用IntStream
:
public List<CartItem> getCartItems() {
return IntStream.range(0,names.size())
.mapToObj(ctr -> new CartItem(names.get(ctr), prices.get(ctr), quantities.get(ctr), subTotals.get(ctr)))
.collect(Collectors.toList());
}
推荐阅读
- c# - Xamarin.Forms:无法从 Firebase 实时数据库反序列化/接收 JSON 数据
- math - 指数退避
- python - Python套接字如何监听主机名而不是IP地址
- laravel-5.7 - 尝试多用户身份验证,它一直说传递了错误的参数实例
- vue.js - VueJS nexttick 和 IE11
- javascript - “无法访问此站点”时重新加载页面
- python - 使用正则表达式解析数据库表名
- c# - 读取具有对象结构的配置文件c#
- python - 如何创建一个 cuda virsion 与 ubuntu 系统不同的环境?
- android - 如何修复 Xamarin.Android 中的“[FirebaseMessaging] 无法记录事件:缺少分析库”