Java 如果箱子已满,则箱子装箱布尔值

Java 如果箱子已满,则箱子装箱布尔值,java,boolean,bin-packing,Java,Boolean,Bin Packing,我正在尝试使用Next Fit online实现一个装箱算法。所以我不知道这些盒子的大小。无论如何,我有一个高度和宽度的盒子类。表示和堆叠箱子的列类,以及保存箱子堆叠的卡车类,如果卡车已满或未满,则为布尔值 然而,当我在我的测试课上时,我会生成一个箱子列表和一个用来装箱子的卡车列表。我将框添加到每辆卡车,当卡车几乎没有空间时,最后一个框尝试添加,但它不适合,因此布尔值isFull设置为true,但进入方法的框随后丢失。如何将箱子添加到卡车上,如果箱子已满,则在下一辆卡车的呼叫中使用相同的箱子 非

我正在尝试使用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
    }
}