Java 了解通过arraylist进行迭代

Java 了解通过arraylist进行迭代,java,arraylist,Java,Arraylist,大家好,我正在做作业,我不明白其中的一部分。我已经实施了,但它并没有按预期那样工作。它说: 迭代调用toString()的Pizza对象的ArrayList 方法,将方法调用的返回值加上 名为list的字符串的换行符 这就是我所做的 for(int i=0; i<myList.size()l i++) { //myList is arraylist of type Pizza list +=myList.toString() + "\n"; } for(int i=0;i您需要调用

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

迭代调用toString()的Pizza对象的ArrayList 方法,将方法调用的返回值加上 名为list的字符串的换行符

这就是我所做的

for(int i=0; i<myList.size()l i++)
{
//myList is arraylist of type Pizza
   list +=myList.toString() + "\n";
}
for(int i=0;i您需要调用方法
,该方法将返回此列表中指定位置的元素

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

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

for (Pizza item : myList ) {
   list += item.toString() + "\n";
}
在需要遍历列表中所有元素的情况下,不需要索引变量。Java 5中添加的for each语法使您可以更轻松地遍历列表。

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

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

list+=myList.get(i)

这是假设列表是一个字符串,您只是将myList中的每一项合并到其中(听起来您可能也不想这样做,但我不能说您的实际目标是什么)


dasblinkenlight指出,另一种(可能更优雅)方法是跳过for(;;)循环,使用for(:)循环遍历列表,然后动态地将每个项抓取到它自己的变量中。这种方法的缺点是,如果出于某种原因您确实需要知道数组列表中的项索引是什么,您手头就没有这些信息。

是的列表是字符串,我正在从文件中读取数据,并将其存储在字符串obj l中有时,您需要使用索引变量,例如,打印
“索引处的项”+i+:“+list.get(i)
。顺便说一句,
for(:)
语法在Java中称为
增强for循环