Java 如果箱子已满,则箱子装箱布尔值
我正在尝试使用Next Fit online实现一个装箱算法。所以我不知道这些盒子的大小。无论如何,我有一个高度和宽度的盒子类。表示和堆叠箱子的列类,以及保存箱子堆叠的卡车类,如果卡车已满或未满,则为布尔值 然而,当我在我的测试课上时,我会生成一个箱子列表和一个用来装箱子的卡车列表。我将框添加到每辆卡车,当卡车几乎没有空间时,最后一个框尝试添加,但它不适合,因此布尔值isFull设置为true,但进入方法的框随后丢失。如何将箱子添加到卡车上,如果箱子已满,则在下一辆卡车的呼叫中使用相同的箱子 非常感谢 代码Java 如果箱子已满,则箱子装箱布尔值,java,boolean,bin-packing,Java,Boolean,Bin Packing,我正在尝试使用Next Fit online实现一个装箱算法。所以我不知道这些盒子的大小。无论如何,我有一个高度和宽度的盒子类。表示和堆叠箱子的列类,以及保存箱子堆叠的卡车类,如果卡车已满或未满,则为布尔值 然而,当我在我的测试课上时,我会生成一个箱子列表和一个用来装箱子的卡车列表。我将框添加到每辆卡车,当卡车几乎没有空间时,最后一个框尝试添加,但它不适合,因此布尔值isFull设置为true,但进入方法的框随后丢失。如何将箱子添加到卡车上,如果箱子已满,则在下一辆卡车的呼叫中使用相同的箱子 非
一般来说:您不会因为将引用传递给方法而丢失引用…很抱歉,我为该方法输入了一些代码。。因此,如果该框通过了所有检查,但无法装入卡车,并且我将布尔值设置为true,那么在我的测试类中,我有一个for循环,用于将框加载到此方法中。。“我不会丢失这个盒子吗?”@DanielCallaghan你不会丢失对你的盒子的引用。我看到的唯一问题是,一旦你不能再向你的卡车添加任何东西,你就设置你的卡车。为什么不在卡车上添加一个方框后检查它是否已满,如果已满,则将该值设置为true?这样你就没有试错码了。
public void addBoxesNextFit(Box b)
{
if(truck.isEmpty()) // easy first case
{
*make a new column*
*add box to column and add column to truck*
}
else
{
*Get the last column in list*
if(remainingHeight in column > BoxesHeight && widthOftheColumn > boxesWidth)
{
*add box to column*
*add column to truck*
boxesInTruck++;
}
else if(there is enough space to make another column with the box)
{
*Make new column*
*add box to column and column to truck*
boxesInTruck++;
widthofAllColumns += b.getWidth(); //update width of all columns
}
else
{
truckFull = true; // if u can't add the box to 1 of the columns and you can't create a new column
} // then the truck is full
}
}