0

どのようにして配列リストを動的に作成し、すべての配列リストを保持する配列リストに追加するのだろうか? また、for-each ループのメイン配列リスト内で動的に作成された配列リストからどのように読み取るのだろうか?

4

7 に答える 7

7
List<Bar> innerList = new ArrayList<Bar>();
// add Bar objects to this list
List<List<Bar>> mainList = new ArrayList<List<Bar>>();
mainList.add(innerList); // adding innerList to mainList
for(List<Bar> listElement:mainList){
     // here listElement will give you an innerList
         for(Bar bar: listElement){
            // gives you a handle to each Bar element stored in
            // listElement
         }
}
于 2013-05-13T11:44:40.167 に答える
3

MultimapのキーでGuava を使用することを検討してくださいInteger

マルチマップ

具体的にはArrayListMultimap

Multimap必要に応じてインナーListsを動的に作成します..

リストのセット内の任意のリストに要素を追加するには:

Multimap<Integer, Bar> myMultimap = ArrayListMultimap.create();
myMultimap.put(1, new Bar());

List<Bar> listAtIndex5 = myMultimap.get(5);

Multimapを使用して、すべての内部リスト内のすべての要素を反復処理するメカニズムも提供しますvalues。したがって、コレクション全体のすべての要素を次のように反復処理できます。

for (Bar bar: myMultimap.values()){
    // some work on bar
}
于 2013-05-13T11:43:45.560 に答える
1

このような..

ArrayList<DATA_TYPE> demo = new ArrayList<DATA_TYPE>();
for(DATA_TYPE i:demo)//foreach
{
System.out.println(i); 

}
于 2013-05-13T11:44:34.873 に答える
0
List list= new ArrayList();<\`pre`>
List list1= new ArrayList();
list1.add("Example1");
list1.add("Example2");
list.add(list1);
System.out.println(list);

U は、もう 1 つの <`pre`> 内に追加された 2 つの arraylist を見つけることができます

于 2013-05-13T11:52:47.990 に答える
0

次の行を使用してそれを達成できます

リストを動的に宣言するには

ArrayList<Object> childList = new ArrayList<Object>();
ArrayList<ArrayList<Object>> mainList=new ArrayList<ArrayList<Object>>();

子リストをメイン リストに追加するには

  mainList.add(childList);
  mainList.add(new ArrayList<String>());
  mainList.add(new ArrayList<Integer>());
  ........   

for ループ内でリストにアクセスするには、

for(ArrayList listobj: mainList){
   for(Object obj : listobj){
     //do something here
  }
}

すべてのリストを同じ型にしたい場合は、子リスト宣言で Object の代わりにその型を使用できますが、すべての子リストを異なるものにしたい場合は、 Object クラスを直接使用することをお勧めします。

于 2013-05-13T11:53:10.897 に答える