迭代ArrayList以返回值

时间:2015-04-11 22:05:41

标签: java arraylist iterator

我无法看到我的工作错误:我正在创建一个迭代器(在我的班级LamborghiniCarLot中),它将给出我的(ArrayList inventory;)中的车辆数量,它们是后轮驱动。兰博基尼类有一个名为getIsRearWheelDrive()的方法。但是试图调用它,我找不到找到的方法。 “inventory”是持有arraylist的字段变量。这是我的代码:

public int howManyAreRearWheelDrive()
{
    int numberRearWheel = 0;
    Iterator<Lamborghini> it = inventory.iterator();
    Lamborghini inv = null;

    while(it.hasNext())
    {
        inv = it.next();
        if(inv != null)
        {
            if(it.getIsRearWheelDrive() == true)
            {
                numberRearWheel ++;
            }
        }
    }
    return numberRearWheel;
}

3 个答案:

答案 0 :(得分:2)

if(it.getIsRearWheelDrive() == true)

应该是

if(inv.getIsRearWheelDrive() == true)

答案 1 :(得分:0)

您需要使用it.getIsRearWheelDrive()而不是inv.getIsRearWheelDrive(),因为您的兰博基尼类具有该方法。 it是您的迭代器,迭代器没有getIsRearWhileDrive()方法。

答案 2 :(得分:0)

我会使用for循环

for(Lamborghini inv: inventory) {
  if(inv.getIsRearWheelDrive()) numberRearWheel++;
}

或流

public int howManyAreRearWheelDrive() {
  return (int)inventory.stream().filter(inv -> inv.getIsRearWheelDrive()).count();
}