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を含む別の配列からアイテムを取得する、私が作成したクラスの戻り値です。問題は、アイテムをArrayListに渡すと、そのアイテムの列が作成されることです。罰金。しかし、2番目のアイテムを渡すと、2番目の列が作成され、その中にアイテムが配置されますが、新しい行が作成され、すべてのアイテムが最初の行から2番目の行にコピーされます。3番目のアイテムを渡すと、3番目の列が作成され、そこに3番目のアイテムが配置され、3番目の行が作成され、すべてのアイテムがコピーされるため、3つの同じ行が作成されます。 そのようです:String itemNamedouble pricedouble weightplayerInventory

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

1列のアイテムだけが表示されるようにするにはどうすればよいですか?

4

1 に答える 1

0

印刷に問題があります。

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

同じ配列をplayerInventory.size()何度も出力します。

for1回だけ印刷する(ループを削除する)か、次のように印刷することができます。

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