0

我有以下代码:

playerInventory.add(temp);
System.out.println("You've purchased " + temp.getName());
balance -= temp.getPrice();
runningWeight -= temp.getWeight();
System.out.println("Your new balance " + balance + ", and your wagon can carry " + runningWeight + " more pounds of products.\nPress enter to continue shopping.");
Scanner cont = new Scanner(System.in);
String enterToContinue = scan.nextLine();

for(int i = 0; i < playerInventory.size(); i++)
    System.out.println(playerInventory);

该变量temp是我创建的一个类的返回值,它从另一个包含String itemNamedouble price和的数组中获取一个项目double weight。问题是,当我将一个项目传递给我的 ArrayListplayerInventory时,它会为该项目创建一个列。美好的。但是当我传递第二个项目时,它会创建第二列并将项目放在其中,但随后它也会创建一个新行并将第一行中的所有项目复制到第二行。传递第三个项目后,它会创建第三列,将第三个项目放在那里,然后制作第三行并将所有项目复制下来,这样我就有了三个相同的行。

像这样:

[Item1, Item2, Item3]
[Item1, Item2, Item3]
[Item1, Item2, Item3]

我怎么做才能让它只给我一排的物品?

4

1 回答 1

0

您的打印有问题:

for(int i = 0; i < playerInventory.size(); i++)
    System.out.println(playerInventory);

playerInventory.size()多次打印相同的数组。

您可以只打印一次(删除for循环)或将其打印为:

for(int i = 0; i < playerInventory.size(); i++)
    System.out.println(playerInventory.get(0));
于 2013-03-10T11:43:31.303 回答