0

大家好,我正在做作业,我不明白其中的一部分。我已经实现了它,但它没有按预期工作。它说:

遍历调用每个对象的 toString() 方法的 Pizza 对象的 ArrayList,将方法调用的返回值加上换行符添加到 String 调用列表。

这就是我所做的

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

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

4

3 回答 3

4

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

list +=myList.get(i).toString() + "\n";
于 2012-10-20T17:02:01.377 回答
4

for( : )您需要使用语法而不是语法遍历列表元素for( ; ; )

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

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

于 2012-10-20T17:03:20.877 回答
3

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

你不能通过 myList[ index ] 访问它的成员......你必须调用它的 get() 方法......

列表 += myList.get(i);

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

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

于 2012-10-20T17:03:35.317 回答