我已经为患者安排了时间表。我已经将其中的160个作为一个星期使用,但是我想要一千个星期,所以对于每个时隙,我都做了一个可变的星期(int)。现在由于某种原因,每个时隙的可变周的值都为1000。如果我在测试变量上测试相同的代码,则效果很好。有人有主意吗?
int[] test = new int[160000];
for(int j =0;j<1000;j++)
{
for(int i = 0;i < 160;i++)
{
timeslot[j*160 + i] = timeslot_build[i];
timeslot[j*160 + i].set_week(j+1);
test[j*160 + i] = (j+1);
}
}
System.out.println(test[150]);
System.out.println(test[5166]);
System.out.println(test[44000]);
System.out.println(test[100000]);
System.out.println(timeslot[150].week);
System.out.println(timeslot[5166].week);
System.out.println(timeslot[44000].week);
System.out.println(timeslot[100000].week);
这是输出:
1个
33
276
626
1000
1000
1000
1000
最佳答案
分配timeslot[j*160 + i] = timeslot_build[i]
时,您使用相同的实例。
因此timeslot[0*160 + i]
= timeslot[1*160 + i]
= timeslot[2*160 + i]
等
您每次都必须创建一个新实例。因为现在您只有160个timeslot
类型和timeslot
数组存储它们的引用。
关于java - Java:如何在循环中分配变量值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55865227/