我的comp sci类中有一个程序必须跟踪cookie订单(想想女童子军cookie)。这是一种旨在删除某些Cookie并返回删除的盒子数的方法。它不断超越界限。 ArrayList是“ orders”变量,它由CookieOrder对象(下面的CookieieOrder类)组成
public int removeVariety(String cookieVar)
{
int counter = 0;
for(int i = orders.size() - 1; i > 0; i--)
{
if(orders.get(i).getVariety().equals(cookieVar))
{
counter += orders.get(i).getNumBoxes();
orders.remove(i);
}
}
return counter;
}
这是CookieOrder类
private String variety;
private int boxes;
public CookieOrder (String variety, int numBoxes)
{
this.variety = variety;
boxes = numBoxes;
}
public String getVariety()
{
return variety;
}
public int getNumBoxes()
{
return boxes;
}
最佳答案
不要使用for
循环,请使用迭代器并使用Iterator#remove()