2013-03-10 122 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));