2016-10-28 17 views
0

私はいくつかの1D arraylistsで記入したい2D arraylistを持っています。私のコードは次のとおりです:arraylistをjavaの2d arraylistに追加します

ArrayList<ArrayList<String>> array = new ArrayList<ArrayList<String>>(); 
    ArrayList<String> list = new ArrayList<String>(); 
    while (ts2.next()) { 

      list.add(ts2.getString("userName"); 
      list.add(ts2.getString("userId")); 
      array.add(list); 
      list.clear(); 

     } 

私はlist.clear()しかしまた配列から要素を削除リストから要素を削除しますことに気づきました。最後にアレイリストは空です。 配列にリストを追加するにはどうすればリストの後にの後にarray.add(list);

array.add(list.clone()); 

それとも、ループ自体の中にリストオブジェクトをインスタンス化することができます:あなたがリストクローンを作成することができます

答えて

2

ArrayList<ArrayList<String>> array = new ArrayList<ArrayList<String>>(); 

    while (ts2.next()) { 
     ArrayList<String> list = new ArrayList<String>(); 
     list.add(ts2.getString("userName"); 
     list.add(ts2.getString("userId")); 
     array.add(list); 
    } 

を次に、あなたもそれをクリアする必要はありません。

+0

私はこのメッセージを得た:ArrayListを>は引数には適用されませんタイプにメソッドが追加(ArrayListの)を(オブジェクト) – konstantin

+0

は、ArrayListのように、オブジェクトをキャストしてください: 'array.add( (ArrayList )list.clone()); ' –

1

あなたはこれを行うことができます:あなたはまた、ArrayListになる場合

ArrayList<String[]> arr = new ArrayList<String[]>(); 
    String[] str = new String[2]; 
    while (ts2.next()) { 
     str[0] = ts2.getString("userName"); 
     str[1] = ts2.getString("userId"); 
     arr.add(str); 
    } 

を:あなたは既存のものに追加するArrayList<>の新しいインスタンスを

ArrayList<ArrayList<String>> arr = new ArrayList<ArrayList<String>>(); 
    while (ts2.next()) { 
     ArrayList<String> arrString = new ArrayList<String>(); 
     arrString.add(ts2.getString("userName")); 
     arrString.add(ts2.getString("userId")); 
     arr.add(arrString); 
    } 
1

を作成することができます。

while (ts2.next()) { 
    List<String> list = new ArrayList<>(); 
    list.add(ts2.getString("userName")); 
    list.add(ts2.getString("userId")); 
    array.add(list); 
} 

ただし、これらの値をクラスの新しいインスタンスにマップする方がよい場合があります。

List<MyClass> = new ArrayList<>(); 

while (ts2.next()) { 
    MyClass i = new MyClass(ts2.getString("userName"), ts2.getString("userId")); 
    array.add(i); 
} 
関連する問題