2016-06-28 33 views
0

現在、文字列のArrayListを配列のArrayListに保存しようとしています。以下のコードは、私が試みていることの基本を示しています。ArrayListを追加する<String>をArrayListに追加する<ArrayList <String>>

ArrayList<ArrayList<String>> groupCollection= new ArrayList<ArrayList<String>>(); 
ArrayList<String> m_listItems = new ArrayList<String>(); 
groupCollection.add(m_listItems); 

私は同じ.add()機能を使用してm_listItemsに文字列を追加し、それが正しく文字列を追加します。

しかし、m_listItems(それに値の配列を持つ)をgroupCollectionの最初のインデックスに追加しようとすると、デバッガでは最初のインデックスにnull配列が追加されます。

image

+5

指定した例から、m_listItemsにはアイテム(サイズ= 0)が含まれていません。 –

+0

あなたは本当にヌル配列を意味しましたか?もしそうなら、私の編集を取り消してください:) – zapl

+1

あなたのスニペットは空のリストを作成し、それに何も入れません。あなたはそれが空のままであるのを見つけるために驚くべきではありません! – Boann

答えて

3

あなたのコードは、それがnullではない、ちょうど空の配列リストだ、大丈夫です!

0

m_listitemsのリストm_listitems.add( "foo")にオブジェクトを追加する必要があります。あなたを実行するgroupCollection.add(m_listItems);メソッドと異なる結果が表示されるはずです。

0

上記の回答は間違いありません。
ちょっとした詳細を追加するだけです。
というグループのArrayListのArrayListをgroupCollectionという名前で作成しました。 ArrayListの名前はm_listItemsです。
別のArrayListを作成します(例:n_ListItems)。そして両方のArrayListに文字列を追加します。

ArrayList<String> m_listItems = new ArrayList<String>(); 
     m_listItems.add("Hello"); 
     m_listItems.add("Welcome"); 
ArrayList<String> n_listItems = new ArrayList<String>(); 
     n_listItems.add("Hi!"); 
     n_listItems.add("Wel.."); 
     n_listItems.add("Come.."); 

groupCollectionに両方のリストを追加します。

ArrayList<ArrayList<String>> groupCollection= new ArrayList<ArrayList<String>>(); 
     groupCollection.add(m_listItems); 
     groupCollection.add(n_listItems); 

StringListのArrayListのArrayListに2つのarraylistsを追加しました。このプログラムの動作を見るには、イテレータを使用してリストを表示しています。

Iterator<ArrayList<String>> iterator = groupCollection.iterator(); 
     while(iterator.hasNext()){ 
      System.out.println(iterator.next()); 
     } 

これにより、次のような出力が得られます。

[Hello, Welcome] 
[Hi!, Wel.., Come..] 

ここで、このプログラムがどのように動作しているかを明確に確認できます。

関連する問題