1

ArrayList 行の値を反復処理する最も簡単な方法は何ですか?

たとえば、次の 2 つがありArrayListます。

ArrayList<Object> main = new ArrayList<Object>();
ArrayList<Object> row = new ArrayList<Object>();

forメインに値を追加するために2 つの s を使用します。最初に行を追加し、行の反復が終了したらメインに追加し、別の行などに対して繰り返します。例:

for(int i=0; i < somearray.length; i++){
  for(int j=0; j < somearray2.length; j++){
    if(somearray2[j] == true)
      row.add(somearray2[j]);
    }
  main.add(row);

}

だから今、必要な行で満たされた ArrayList を取得します。しかし、後で行自体だけでなく、行の値を反復処理する必要がありますmain ArrayList。どうやってやるの?私は方法しか見ていないので:

main.get(index) で行を取得できますが、それ以上はありません。

4

2 に答える 2

7

したがって、あなたの説明に基づいて、mainオブジェクトのリストではなく、リストのリストです。したがって、次のように宣言する必要があります

List<List<Object>> main = new ArrayList<>();

繰り返しが明らかになります:

for (List<Object> row : main) {
    for (Object element : row) {
        // do what you want here
    }
}

List<Object>これには、コードをタイプ セーフにするという追加の利点があります。メイン リスト内にa 以外のものを誤って追加することはできません。

于 2013-11-10T13:44:52.910 に答える
0

はい、次のようにアクセスします((ArrayList<Object>)main.get(index)).get(index2);。ただし、すべての行要素をmain配列に追加する場合は、次を利用できます。

Collections.addAll(main, row.toArray());
于 2013-11-10T13:45:17.087 に答える