2013-03-10 46 views
0

我有以下代碼:ArrayList使用array.add()添加行和列,如何添加行或列?

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是I類製成,其從含有String itemNamedouble price,和double weight另一個陣列獲取的物品的返回值。問題是,當我傳遞一個項目到我的ArrayList playerInventory時,它會爲該項目創建一個列。精細。但是當我傳遞第二個項目時,它會創建第二個項目並將項目放入其中,然後它會創建一個新行並將第一行中的所有項目複製到第二個行中。在傳遞第三個項目時,它會創建第三個列,將第三個項目放在那裏,然後創建第三個項目並將所有項目都複製下來,這樣我有三個相同的行。

像這樣:

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

我如何使它所以它只是給我一個行中的項目?

+0

使用'的System.out.println(playerInventory.get(I));' – BobTheBuilder 2013-03-10 11:32:58

+0

@baraky多數民衆贊成解決它,非常感謝!快速的問題,數組列表是如何以這種方式存儲事物的正常情況,還是隻是我打印它的方式,使它看起來很奇怪? – 2013-03-10 11:39:37

+0

這只是印刷。該數組只有3個元素長[Item1,Item2,Item3] – BobTheBuilder 2013-03-10 11:41:14

回答

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));