了解通过arraylist迭代

时间:2012-10-20 17:00:46

标签: java arraylist

大家好,我正在做作业,我不明白它的一部分。我已经实现了它,但它没有按照这样的方式工作。它说:

  

遍历调用toString()的Pizza对象的ArrayList   每个对象的方法,添加方法调用的返回值加   字符串的换行符,称为列表。

这就是我所做的

for(int i=0; i<myList.size()l i++)
{
//myList is arraylist of type Pizza
   list +=myList.toString() + "\n";
}

如果有人能说我的实施是否正确,那就太棒了。

3 个答案:

答案 0 :(得分:4)

您需要致电ArrayList#get()方法which will return the element at the specified position in this list

list +=myList.get(i).toString() + "\n";

答案 1 :(得分:4)

您需要使用for( : )语法迭代列表元素,而不是for( ; ; )语法:

for (Pizza item : myList ) {
   list += item.toString() + "\n";
}

在您想要浏览列表的所有元素的情况下,您不需要索引变量。在Java 5中添加的每个语法的可以让您更轻松地浏览列表。

答案 2 :(得分:3)

这不正确。 ArrayList是一个拥有自己的方法的对象。

您无法通过myList [index]访问其成员...您必须调用其get()方法...

list + = myList.get(i);

这假设list是一个String,你只是将myList的每个项目连接到(这听起来像你可能不想做的事情,但我不能说你的实际目标是什么)。

正如dasblinkenlight指出的另一种(可能更优雅)方法是跳过for(;;)循环并使用for(:)循环遍历列表并将每个项目抓到自己的变量即时。这种方法的缺点是,如果由于某种原因,您确实需要知道数组列表中的项索引是什么,那么您就没有这方面的信息。