【发布时间】:2021-12-27 11:20:39
【问题描述】:
我想将停车分配给每个订单,然后从其他停车的订单集中删除停车分配订单时遇到问题。这个数组列表 arr_assignedOrderSet 的大小为 22,因此它应该迭代 22 次。但我不知道为什么它在 11 次后停止了。如果我将迭代次数 arr_assignedOrderSet.size() 替换为 22,它将显示错误“java.lang.IndexOutOfBoundsException: Index 11 out of bounds for length 11 ”。代码如下:
ArrayList<Order> arr_assignedOrderSet = new ArrayList<Order>();
arr_assignedOrderSet = pop_parkings.get(index).orderSet;
for(int i=0; i<arr_assignedOrderSet.size(); i++){
Order order = arr_assignedOrderSet.get(i);
for(int j=0; j<order.col_parking.size(); j++){
Parking p = order.col_parking.get(j);
p.orderSet.remove(order);
}
}
非常感谢您的帮助~ ;-)
【问题讨论】:
-
如何创建
pop_orders代理?一开始你创建了 22 个? -
我创建了 100 个订单,并首先将停车位分配给其中的 22 个订单。
-
你什么时候运行这些循环?一开始?
-
你说“arr_assignedOrderSet 中有 22 个订单,像这样:”但代码清楚地显示只有 11 个 :)
-
是的,你是对的!当我评论“order.col_parking”的循环并打印出“arr_assignedOrderSet.size()”的循环时,我可以得到22个订单。但是我不知道为什么如果我把循环放回去,结果减半......
标签: java anylogic agent-based-modeling dynamic-delivery parking