【发布时间】:2015-11-10 14:03:12
【问题描述】:
我有一个简单的for 循环,它遍历对象的ArrayList。每次它检查添加当前对象是否会使列表 x 的总和超过一个容量。如果未达到或超过容量,则将对象添加到列表 x,否则,将列表 x 添加到 x 的另一个列表 y,清除列表 x,然后添加当前对象。
List<Customer> route = new ArrayList<Customer>();
for(Polar s:polars) {
if((requirment(route) + s.getCustomer().c) <= prob.depot.c) {
route.add(s.getCustomer());
} else {
soln.add(route);
route.clear();
route.add(s.getCustomer());
}
}
现在我打印了对象列表,以验证其顺序是否正确,但执行此循环仅输出一个列表,并且似乎错过了对象列表中的前几项。它是一个简单的循环,但我终其一生都无法找出问题所在。
感谢任何帮助!
这里是requirment():
public int requirment(List<Customer> route) {
int r = 0;
if(route.isEmpty() == true) return 0;
for(Customer cust : route) {
r = r + cust.c;
}
return r;
}
【问题讨论】:
-
我认为调试器是你唯一的希望
-
这段代码不能编译它的
isEmpty()有专利权