我正在尝试解决一个名为卡车装载问题的装箱问题。以下是我的代码片段:
public class Truck {
private List<Stack> stacks = new ArrayList<Stack>();
...
public String toString(){
String stringToReturn = "";
for(Stack st : stacks){
stringToReturn = stringToReturn + st.toString();
}
return String.format("%s\n", stringToReturn);
}
}
public class Stack {
private List<Box> boxes = new ArrayList<Box>();
...
public String toString(){
String stringToReturn = "";
for(Box b : boxes){
stringToReturn = stringToReturn + b.toString() + ", ";
}
return String.format("%s\n", stringToReturn);
}
}
public class Box {
@Override
public String toString(){
return String.format("H: %d, W: %d | ", getHeight(), getWidth());
}
public class Loader{
static List<Truck> trucks = new ArrayList<Truck>();
public static void printTrucks(List<Truck> trucks){
int counter = 1;
for(Truck t : trucks){
if(t.getStacks().size() != 0){
System.out.printf("Truck %d:\n", counter);
t.toString();
counter++;
}
}
}
}
你可以看到,我有三个物体;卡车,堆栈(即一堆不是数据结构的盒子)和一个盒子。堆栈存储当前堆栈中的框列表。卡车存储它拥有的堆栈列表。 所以这就是我想要的;对于装有物品的每辆卡车,打印出任何堆叠和堆叠中的任何盒子。我想要实现的示例输出是:
卡车1:
堆栈1:H:1,W:4 | H:2,W:2
堆栈2:H:4,W:4卡车2:
堆栈1:H:3,W:6
目前我打印的全部是:
卡车:1
卡车:2
等
由于某种原因,stringToReturn似乎没有像我想的那样工作。有人可以提供一些帮助吗?我知道我的代码不符合我想要的例子,但我仍然不明白为什么没有关于框的信息没有显示。
答案 0 :(得分:0)
原来我得到了隧道视觉并且完全错过了我称之为t.toString()然后没有做任何事情的事实。只需打印出来。傻我。