2017-06-27 19 views
-3
I have 2 -d array p[i][j] by using 

    for (int jj=0; jj < N;jj++){ 

      My_0[jj] = p[0][jj]; 
      My_1[jj] = p[1][jj]; 
      My_2[jj] = p[2][jj]; 
      My_3[jj] = p[3][jj]; 
      My_4[jj] = p[4][jj]; 
      My_5[jj] = p[5][jj]; 
      My_6[jj] = p[6][jj]; 
      My_7[jj] = p[7][jj]; 
      My_8[jj] = p[8][jj]; 
      My_9[jj] = p[9][jj]; 

    } 
I extracted rows from p and inserted into My_0 to My_9 one by one,,,then I inserted each My_0 to My_9 into a arraylist class object 

    List<AA> part = new ArrayList<AA>(); 
    AA newP = new AA(); 

    // using 
    newP.setO(My_0); 
    newP.setO(My_1); 
    newP.setO(My_2); 
    newP.setO(My_3); 
    newP.setO(My_4); 
    newP.setO(My_5); 
    newP.setO(My_6); 
    newP.setO(My_7); 
    newP.setO(My_8); 
    newP.setO(My_9); 

    part.add(newP); 
    // then print this array list using 

    System.out.println("Size === "+ part.size()); 
    for (int j1=0; j1 < part.size();j1++) { 
     System.out.println("" + Arrays.toString((part).get(j1).getO())); 
    } 

しかし、問題は、My_9配列をpart.size()まで印刷することだけです。すべてのMy_0〜My_9を印刷するにはどうすればよいですか。配列リストの配列の印刷方法

  newP0.setO(My_0); 
      newP1.setO(My_1); //like this done for every My_0 to My_9 
      part.add(newP0); 
      part.add(newP1); //like this done for every My_0 to My_9 

     System.out.println("Size === "+ part.size()); 
      for (int j1=0; j1 < part.size();j1++){ 
      System.out.println("" + Arrays.toString((part).get(j1).getO())); 

と私はMy_9は10回の値に、それはサイズ= 100及び印刷My_0を印刷します印刷部のため、上記のコードを使用しています、それが正しいか、印刷中のコードが間違って起こっている,,私はそれだけだと思います一度にMy_0からMy_9までの値を印刷する

+1

質問を書式設定し、コードをインデントして[mcve]を投稿できますか?あなたはコードブロックにテキストを持っていますが、それは助けにはなりません。宣言が見えない変数( 'My_9'、これは標準構文ではありません)を持っています。 – AxelH

答えて

1

の値を常に上書きしているnewP.setO(My_..)を設定しているため、My_9のみが印刷されます。

newP.setO(My_9)は、newPで最後に行う設定です。つまり、OはMy_9値です。

// using 
newP.setO(My_0); // o is now equal to My_0 
newP.setO(My_1); // o is now equal to My_1 
newP.setO(My_2); // o is now equal to My_2 
... 

は、たぶん、あなたが何をしたいのか、新しいAAオブジェクトを作成し、それをあなたが望むMy_xxを与え、partに追加して、あなたが持っている次のMy_..のために再びそれを行うことです。このよう

:コメントで述べたように

AA newP0 = new AA(); 
newP0.setO(My_0); 
part.add(newP0); 

AA newP1 = new AA(); 
newP1.setO(My_1); 
part.add(newP1); 

そしてまた、あなたはArrays.toString((part).get(ii)を行っているが、あなたはあなたのforループでj1を宣言しています。

for (int j1=0; j1 < parti.size();j1++) { 
    System.out.println("" + Arrays.toString((part).get(ii).getO())); 
} 

またpartiがループの宣言にpartなければならないことを参照してください。

私はあなたがこれで達成しようとしていることを正直にはわかりません。 AAのような多くの情報が欠けていますか?また、変数にCamel casingを使用することを検討する必要があります。

+2

ループが 'int j1'を使っているという事実を追加できますが、ブロック内では' get(ii) 'を見つけることができます。 – AxelH

+1

うん、このコードには奇妙なことがたくさんある。しかし、私はこれを私の答えに追加します。ありがとう –

+2

条件は 'part.size()'の代わりに 'parti.size()'、typoまたはnot)を使っています。 – AxelH