2016-05-09 11 views
-2

コードがList<List<Maindish>> mealの場合、List<Maindish>public Maindish (salad, rice, drink)のようになります。あなたがしたい場合はJavaのArrayListのArrayList

for (i = 0; i < meal.length(); i++) { 
     return meal[i][1]; 
    } 
+1

試してみるとどうなりますか? –

+1

'List' **は配列ではありません(したがって、要素にアクセスするために' [] 'を使うことはできません)。あなたの例では、['List.get(int)'](http://docs.oracle.com/javase/8/docs/api/java/util/List.html#get-int-)を使うことができます。しかし、最初の要素を返すことはあまり意味がありません。あなたは本当に何をしたいですか? –

+0

javadocs https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html –

答えて

0

Listでelemtsを読み書きするために各要素を反復する必要はありません。 以下の方法を利用できます。

  • 追加(int型のインデックス、Eの要素)
  • のaddAll(コレクションC)
  • のaddAll(int型のインデックス、コレクションC)
  • GET(int型のインデックス)
  • セット(int型のインデックス、E要素)

利用可能なメソッドの一覧は、hereです。

これはメインコースを含むリストのリストであるので、あなたは私たちが取得できるか、最初の食事第二maindish(米)の値との助けを頼むは、最初のリストの最初の食事で二maindishです食事の。次のコードでアーカイブすることができます。

meal.get(0).get(0).getRice(); 

仮定: あなたがMaindishクラス内のすべてのセッターとゲッターを実施しています。


+0

を読んでみてください。ただし、 'meal.get(0).get(1).getRice( ); '? "0"はリストの最初の食事で、 "1"はリストの2番目のメインディッシュです。 –

0

:私は最初の食事で二maindish(米)の値をしたいのであれば、私のような何かを行う必要があります(私はすべての貴重なため、後にループを通過する必要がある場合があります)

for (List<Maindish> list : meal) { 
     System.out.println(list.get(0));  
    } 
0

まず、あなたが取得するために、次のように繰り返すことができるよりも、あなたのモデルクラスMaindish

用セッター/ゲッターを作成する必要があります:あなたのサブリストの最初の要素の操作は、あなたは以下のコードを試すことができますあなたのサブリストの最初の項目

 // Assuming your sublist have 1 Maindish 
    for(List<Maindish> submeal : meal){ 
     String rice = submeal.get(0).getRice(); // Assuming getRice() is your getter and return type is String 
    } 
0

あなたは常に各食事のための第二メインディッシュを返すようにしたいことは、この例のために、少なくとも言っている場合、あなたはおそらく唯一の第二メインディッシュの別のArrayListを構築する必要があります。あなたの例を返すことで、食事中のアイテムの数にかかわらず、最初のミドル・ディッシュだけを得ることができます。あなたが十分な情報を与えなかったので、私は仮定の多くを作ってるんだが、我々はMaindishオブジェクトに格納されている実際の料理が文字列であると言うならば、あなたは次のことを行うことができます:

ArrayList<String> secondMains = new ArrayList<>(); 
Iterator<MainDish> it = meal.iterator(); 

while(it.hasNext()) { 
    Maindish mainDish = it.next(); 
    if (mainDish.size() >= 2) { 
     secondMains.add(mainDish.get(1)); 
    } 
} 
return secondMains; 
1

データ型あなたが使用しているのはLists not Arraysです。 []以外のList.get(int i)を試してみてください。