为什么for循环不适用于array.size()



这是我第一次来这里,我对Android Studio上的编码还很陌生。我正在尝试使用for循环填充ArrayList,但我在for循环上的编码有一些问题。我也不确定我要展示什么信息。我认为问题可能是在循环中向数组中添加变量。我的一些代码:


for (int i = 0; i < foodis.size() ; i++) {
if(beverage.get(i).getCalorie()>=(inputcalorie-100)&&beverage.get(i).getCalorie()<=(inputcalorie+100)){

foodtest=beverage.get(i).getFood();
calorietest=beverage.get(i).getCalorie();
Log.d("MyActivity","foodtest=" + foodtest);
Log.d("MyActivity","calorietest=" + calorietest);
foodis.add(new foodis(foodtest,calorietest));
Log.d("MyActivity","food=" + foodis.get(i).getFooddisplay());
Log.d("MyActivity","cal=" + foodis.get(i).getCaldisplay());

}

编辑:我用csv文件中的数据制作了一个beverage数组列表(如下所示(

Coffee,0
Coffee With Milk,150
Milo,371
Milo 50% Less Sugar,140
Apple Juice,46
Orange Juice ,45
Milk,149
Low Fat Milk,110

食品类:


public class foodis {
public String fooddisplay;
public Double caldisplay;
public foodis(String fooddisplay, Double caldisplay) {
this.fooddisplay = fooddisplay;
this.caldisplay = caldisplay;
}
public String getFooddisplay() {
return fooddisplay;
}
public void setFooddisplay(String fooddisplay) {
this.fooddisplay = fooddisplay;
}
public Double getCaldisplay() {
return caldisplay;
}
public void setCaldisplay(Double caldisplay) {
this.caldisplay = caldisplay;
}
}

类别饮料:

public class beverage {
private String food;
private Double calorie;

public String getFood() {
return food;
}
public void setFood(String food) {
this.food = food;
}
public Double getCalorie() {
return calorie;
}
public void setCalorie(Double calorie)
{
this.calorie = calorie;
}


@Override
public String toString() {
return "FoodSample{" +
", food='" + food + ''' +
", calorie=" + calorie +
'}';
}
}
Java中的数组从0(零(开始,因此如果列表中有4个条目,foodis.size()将返回4,但索引从0开始时以3结束。
java.lang.IndexOutOfBoundsException: Index: 3, Size: 3 

最新更新