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で追加されたforeach構文を使用すると、リストをより簡単に調べることができます。

于 2012-10-20T17:03:20.877 に答える
3

これは正しくありません。ArrayListは、独自のメソッドを持つオブジェクトです。

myList [index]を介してそのメンバーにアクセスすることはできません...そのget()メソッドを呼び出す必要があります...

リスト+=myList.get(i);

これは、リストがmyListのすべての項目を連結している文字列であると想定しています(これはおそらくどちらもやりたくないことのように聞こえますが、実際の目的はわかりません)。

dasblinkenlightがこれを行う他の(おそらくよりエレガントな)方法を指摘しているように、これを行うには、for(;;)ループをスキップし、for(:)ループを使用してリストを反復処理し、各アイテムを飛ぶ。このアプローチの欠点は、何らかの理由で配列リスト内のアイテムインデックスが何であるかを知る必要がある場合、その情報が手元にないことです。

于 2012-10-20T17:03:35.317 に答える