2012-02-20 8 views
1

私は2D ArrayListを持っており、2D ArrayListの中にあるものから特定のArrayListを取り出したいと思っています。2D ArrayList in java

これは可能ですか? はいの場合はどうすればよいですか? 2D配列リストはどのように機能しますか、私はそれについてたくさん読んでいますが、私はまだ理解できません。 私の2D ArrayListのは、このフォームがあります:

ArrayList<ArrayList<Items>> arrayList = new ArrayList<ArrayList<Items>>(); 

for (int i = 0; i < 10; i++) { 
    ArrayList<Items> row = new ArrayList<Items>(); 

    for (int j = 0; j < 500; j++) 
    { 
     // create the items... 
    } 
} 
+2

... –

+2

アーノルド、一般的なルールとして、あなたはロールバックするべきではありませんポストの前のバージョン。このトピックの詳細については、[FAQ](http://stackoverflow.com/FAQ)をお読みください。 –

+0

okリチャードと申し訳ありません –

答えて

5

トップ最低料金:

Is this possible?

はい、非常に簡単実際:

ArrayList innerList = arrayList.get(listIndex); 

How does the 2D ArrayList work?

基本的には、配列の配列として機能し、2Dリストの1つの要素にアクセスするとArrayListが返されます。さらに、get()を呼び出して必要な要素を取得する必要があります。

例:誰かがあなたの投稿を編集して、それは品質だ改善されるかどうか、私はあなたがあなたの情報を格納する新しい方法が必要だと思う

ArrayList innerList = (ArrayList) arrayList.get(listIndex); // returns an arraylist 
Item item = (Item) innerList.get(innerListIndex); // returns your item 
7

はい、これが可能です。

arrayList.get()を呼び出すと、があるので、これはArrayListを返します。それから、あなたが必要とするものを何でもやり遂げることができます。例えば

for(int i = 0; i < arrayList.length(); i++){ 
    ArrayList<Items> innerList = arrayList.get(i); 
    for(int j =0; j < 10; j++){ 
     innerList.add(new Items()); 
    } 
} 

これは、あなたが上記の作っあなたの10件のArrayListを取り、10の項目でそれらのそれぞれを記入します。

1

EDIT:この回答はオリジナルの質問(これは少し難解だった)です。

私が正しく理解していれば、多くのリストを1つにまとめる必要があります。

List<List<String>> listOfLists = new ArrayList<List<String>>(); 
for (int i = 0; i < 5; i++) { 
    List<String> thisList = Arrays.asList("a", "b", "c"); 
    listOfLists.add(thisList); 
} 

// flatten 
List<String> flattenedListOfStrings = new ArrayList<String>(); 
for (List<String> listOfString : listOfLists) { 
    flattenedListOfStrings.addAll(listOfString); 
} 

// test 
for (String string : flattenedListOfStrings) { 
    System.out.print(string); 
} 

出力:

abcabcabcabcabc