Java 循环数组的简单方法
下面是我的家庭作业的部分解决方案,我不知道为什么他有两个for循环。如果是我,我会设置If(carbricked[I]==c),然后设置carbricked[I]=null 我不明白为什么有人能解释第二个for循环语句?Java 循环数组的简单方法,java,arrays,Java,Arrays,下面是我的家庭作业的部分解决方案,我不知道为什么他有两个for循环。如果是我,我会设置If(carbricked[I]==c),然后设置carbricked[I]=null 我不明白为什么有人能解释第二个for循环语句? 顺便说一下,Car数组是一种Car类,它存储停放的Car对象 public void driveOut(Car c) { for (int i=0; i<carsParked.length; i++) // Loop through the carParked a
顺便说一下,Car数组是一种Car类,它存储停放的Car对象
public void driveOut(Car c)
{
for (int i=0; i<carsParked.length; i++) // Loop through the carParked array
{
if(carsParked[i] == c) // Find Car c at index i
{
//carsParked, remove(c);
for (int j=i; j<carsIn-1; j++)
{
carsParked[j] = carsParked[j+1];
}
carsParked[carsIn-1] = null;
carsIn = carsIn - 1;
}
}
}
public void driveOut(c车)
{
对于(int i=0;i看起来,您正在查看的解决方案是将所有非空值移到左边,而不是在数组的中间留下空值,这是您的建议所做的。 看起来,您所看到的解决方案是将所有非空值移到左边,而不是离开T。他在数组的中间,这就是你的建议会做的。 你所做的被称为嵌套循环。例如:
for(num2 = 0; num2 <= 3; num2++)
{
for(num1 = 0; num1 <= 2; num1++)
{
System.out.println(num2 + " " + num1);
}
}
for(num2=0;num2您所做的被称为嵌套循环
for(num2 = 0; num2 <= 3; num2++)
{
for(num1 = 0; num1 <= 2; num1++)
{
System.out.println(num2 + " " + num1);
}
}
for(num2=0;num2假设您有一个包含5辆车的数组:[Car1,Car2,Car3,Car4,Car5]
,然后调用方法driveOut(Car3)
在找到值时,将值设置为null,最终得到<代码> [CAR1,CAR2,NULL,CAR4,CAR5] 。这种做法会导致<代码> Null PoExtExeals< /Cult>类型错误,因为<代码> null <代码>值位于数组的中间,并且数据未被压缩。
解决方案基本上是通过从该点开始并将剩余车辆向左移动来消除间隙:
Inner loop rev 1: [Car1, Car2, Car4, Car4, Car5]
Inner loop rev 2: [Car1, Car2, Car4, Car5, Car5]
然后在循环之外,最后一个条目被设置为null,留给您[Car1,Car2,Car4,Car5,null]
假设您有一个包含5辆车的数组:[Car1,Car2,Car3,Car4,Car5]
,然后调用方法driveOut(Car3)
在找到值时,将值设置为null,最终得到<代码> [CAR1,CAR2,NULL,CAR4,CAR5] 。这种做法会导致<代码> Null PoExtExeals< /Cult>类型错误,因为<代码> null <代码>值位于数组的中间,并且数据未被压缩。
解决方案基本上是通过从该点开始并将剩余车辆向左移动来消除间隙:
Inner loop rev 1: [Car1, Car2, Car4, Car4, Car5]
Inner loop rev 2: [Car1, Car2, Car4, Car5, Car5]
然后在循环之外,最后一个条目设置为null,留给您[Car1,Car2,Car4,Car5,null]
我们应该读懂你的心思来知道作业是什么吗?还是根据答案进行逆向工程?我不知道你的问题是什么,但你为什么要用=
来检查汽车物体是否相等?这是我老师给我的解决方案。我正在试图弄清楚嵌套for循环的目的。我们应该这样做吗我不知道你的问题是什么,但是为什么你要用==
来检查汽车物体是否相等?这是我老师给我的解决方案。我正试图弄清楚嵌套循环的目的对不起,你能详细说明一下吗?因为当我刚把车停好的时候当我试图打印出来时,它给了我空点异常。我想他是在试图避免这种情况,但我不明白这是怎么回事。这实际上取决于你在打印出来时做了什么,但你的解决方案可能最终是car,null,car而不是car,car,null,这看起来像你老师的解决方案n通缉。@Aaron-你的老师只是在压缩Carbrized数组开头剩余的所有停放车辆。如果你不压缩它们,然后在数组中循环打印车辆,那么在打印之前,你需要检查NULL以查看车辆是否确实停放在那里。对不起,你能详细说明一下吗?因为w当我刚把车停好的时候当我试图打印出来时,它给了我空点异常。我想他是在试图避免这种情况,但我不明白这是怎么回事。这实际上取决于你在打印出来时做了什么,但你的解决方案可能最终是car,null,car而不是car,car,null,这看起来像你老师的解决方案n通缉。@Aaron-你的老师只是在压缩Carbricked数组开始处剩余的所有停放车辆。如果你不压缩它们,然后在数组中循环打印车辆,在打印之前,你需要检查NULL以查看车辆是否确实停放在那里。我知道这是一个嵌套的循环,我以为你问过了ing“我不知道他为什么有两个for循环”…我想我不明白你的问题。你能澄清一下你想弄明白什么吗?是的,对不起,请检查我上面的评论我知道这是一个嵌套循环我以为你在问“我不知道他为什么有两个for循环”…我想我不明白你的问题。你能澄清一下你想弄明白什么吗?是的,对不起,请检查我上面的评论