java - 将具有相同名称的项目添加到 ArrayList 时出现问题
问题描述
以下代码的预期功能是创建(并返回)一个 ArrayList,其中包含U1
填充存储在loadItems
ArrayList 中的所有项目所需的所有(另一个类)。
U1
类有一个调用的布尔方法canCarry
,true
当项目重量加上所有加载项目的重量不大于特定的最大重量时返回。carry
是另U1
一种更新所有已加载项目的重量的方法,以便我们可以认为该项目已加载,我们可以尝试下一个项目。
我编写的代码在总重量不超过U1
可以处理的最大值时起作用,所以问题是当我在 ArrayList 中创建一个新U1
的u1Needed
ArrayList时,当所有项目loadItems
都加载完毕时,被退回。
ArrayList<U1> loadU1() {
ArrayList<U1> u1Needed = new ArrayList<>();
U1 u1 = new U1();
for (int i=0; i<=(loadItems().size()-1);) {
if (u1.canCarry(loadItems().get(i))) {
u1.carry(loadItems().get(i));
i++;
} else {
u1Needed.add(u1);
u1 = new U1();
}
if (i==(loadItems().size()-1)) {
u1Needed.add(u1);
}
}
return u1Needed;
}
解决方案
推荐阅读
- flutter - 循环 For 内的 Http 请求
- c# - C#如何使图形对象可克隆
- javascript - 有没有办法在 joi 验证中使用回调函数?
- amazon-web-services - 在 Terraform v0.11.14 中按名称对子网进行排序
- python - 如何根据 txt 文件中的一行用特定颜色填充像素,然后通过 pygame 中的所有像素制作图像?
- python - 基于文本的视频游戏项目
- react-native - 是否可以创建具有 IOS 设置支持的 EXPO 应用程序
- c# - C# 如何使用 lambdas 或其他方法使用来自不同列表的值初始化列表 - 需要简化
- spring-boot - 无法在 react-native 中看到 springboot 响应体
- git - 如何在 gitbash 中输入密码