在我的 Java 程序中,我正在模拟一个 parking 场。假设有随机数的汽车,假设有 7 辆汽车。1 号汽车用值 1 表示,汽车 2 由值 2 表示,依此类推。每个汽车值都随机存储在一个代表 parking 场的数组中。数组的每个元素代表一个 parking 位。我正在尝试编写一个执行以下操作的方法:假设您想知道 4 号车所在的 parking 位。值“4”被传递给该方法,该方法将在数组中搜索该值。我想要该方法告诉我在数组的哪个元素中找到了值“4”。这是我到目前为止对该方法的了解:
public int findBayOfCar(int carNumber)
{
int index = -1;
boolean found = false;
while (!found)
{
if (cars[index] == carNumber)
{
}
index++;
}
}
显然它不会工作,因为 Java 无法将 cars[index](Car 类型的数组)与 carNumber(一个 int)进行比较。我该怎么做才能纠正这个问题?
最佳答案
你在这么小的代码中有很多错误。
-
while (!found)
这意味着您将继续搜索直到找到某些东西,但是如果我们正在搜索的元素不在数组中会怎样?由于我们将尝试访问不存在的数组单元格,因此我们将遇到臭名昭著的 ArrayOutOfBoundsException。解决方案:for (int i = 0; i < cars.length; i++)
为了从头开始运行,直到数组的大小。 - 找到了,现在怎么办?您在找到要找的车时没有停下来,现在我们将其设置为
found = true
并停止搜索。
代码:
public int findBayOfCar(int carNumber)
{
int foundAtBay = -1;
for (int i = 0; i < cars.length; i++)
{
if (cars[i].number == carNumber) // or whatever .Number or .number which identify the car number.
{
foundAtBay = i;
break;
}
}
return foundAtBay;
}
关于Java - 在给定值的情况下查找数组的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34191131/