java - 在java中添加项目整数值
问题描述
我有关于以下模式的数据,我只想添加类似项目的数量并存储在列表中。而像这样的项目quantity= 1, ingredient=chicken, unit =kg
,单位将始终为kg。我有List<itemsDTO>
我想从这个列表中添加类似的项目。[{1,"kg","chicken"} , {2.2,"kg","beaf"} , {0.25,"kg","chicken"}]
public class itemsDTO {
double quantity;
String unit;
String ingredient;
}
我试过这段代码
List<itemsDTO> itemsDTOList = new ArrayList<>();
for (int i = 0; i < itemsDTOList.size(); i++) {
for (int j = 0; j < itemsDTOList.size(); j++) {
if (itemsDTOList.get(i).getIngredient().equalsIgnoreCase(itemsDTOList.get(j).getIngredient())) {
int sum;
sum = itemsDTOList.get(i).getQuantity() + itemsDTOList.get(j).getQuantity();
}
}
}
预期产量 1.25 公斤鸡肉,2.2 公斤牛肉
解决方案
您可以将toMap
收集器与合并功能一起使用:
BinaryOperator<itemsDTO> sumQuantity = (a, b) -> {
a.setQuantity(a.getQuantity() + b.getQuantity());
return a;
};
itemsDTOList.stream()
.collect(Collectors.toMap(itemsDTO::getIngredient, Function.identity(), sumQuantity))
.values();
推荐阅读
- android - Workmanager Android 如何处理异步操作?
- api - Symfony 4 API Rest PUT:将数据映射到数据库实体
- regex - 仅提取一行中方括号之间的第一次出现
- azure-api-management - 将后端 URL 作为参数传递给 template.json 文件时出错
- azure - Azure Functions 基于服务总线触发消息内容的动态输入/输出绑定
- angularjs - 为什么 element.$error.email 为 null 而不是 false?
- azure - 为什么持久功能需要太多时间才能“完成”?
- express - 服务器没有运行
- r - R tidyverse 工作流程中的逐步模型选择
- python - float64 在 netcdf4 中写入 nan