-2

配列リストの配列を作成するのに問題があります。コードは次の
'ArrayList<Integer>[] solucao= new ArrayList[6];' とおりです。次のコードを使用します。

           solucao[0].add(1);
            solucao[0].size();
                solucao[1].size();
                solucao[1].add(1);
            solucao[2].size();
            solucao[2].add(1);
                solucao[3].size();
                solucao[3].add(1);
            solucao[4].size();
            solucao[4].add(1);
                solucao[5].size();
                solucao[5].add(1);
            solucao[6].size();
            solucao[6].add(1);
                solucao[7].size();
                solucao[7].add(1);

size のすべての呼び出しは を返しnullます。誰でもそれを解決する方法を知っていますか?

array of arraylistsarray[i]位置が を返すため、 のデータ構造を探していarraylist of integersます。

ありがとうございました

4

4 に答える 4

3

ArrayList配列内のそれぞれを初期化する必要があります。

ArrayList[] solucao = new ArrayList[6];
for (int i = 0; i < solucao.length; i++)
    solucao[i] = new ArrayList();

の配列を持つことはできないと実際に思っていましたArrayList。どうやらできるようですが、非ジェネリックである必要があります。なぜこのようなことをするのか、考え直したほうがいいでしょう...

于 2013-05-22T05:06:22.847 に答える
0

データを保存するには、まずオブジェクトを作成する必要があります。

ArrayList<Integer>[]  ls =  new ArrayList[7];
for (int i = 0; i < ls.length; i++) {
    ls[i] =  new ArrayList<Integer>();
    for(int j = 0 ; j<i ;j++){
        ls[i].add(j);   
    }
    System.out.println(ls[i].size());
}
于 2013-05-22T06:09:48.587 に答える
0
ArrayList<Integer>[] solucao= new ArrayList[6];

する必要がありますnew ArrayList<Integer>[6]

IDE はこれについて警告することに注意してください。次に、配列の各要素を初期化します (Java 7)。

for(int i = 0; i < solucao.length; i++) {
    solucao[i] = new ArrayList<>();
于 2013-05-22T05:06:10.217 に答える
0

配列は単なるポインターまたは参照です。それぞれについて、新しい ArrayList オブジェクトを作成し、データをそこに保存する必要があります。

List[] solucao= new ArrayList[5];
for(int i=0;i<solucao.length;i++)
{
  solucao[i]  = new ArrayList();
  solucao[i].add(yourObject);
}
于 2013-05-22T05:10:05.667 に答える