2011-11-15 15 views
2

int [] []、削除する行番号、削除する列番号を受け入れるメソッドがある場合、その特定の行と列をArrayから削除して、新しいreduced Arrayを返す方法はありますか?Javaの2D配列から特定の行と特定の列を削除するにはどうすればよいですか?

削除したい行/列以外のものをすべて取り出して、2つの一時的なArrayListsに入れて、2つの配列の値から戻す新しい配列を作成したいとします。特定の行を削除することはできますが、列を削除する方法もわかりません。私は最善のアプローチは

int[xsize-1][ysize-1]

の新しい配列を作成していると思う

+1

この権利を理解していれば、新しいサイズの配列int [m-1] [n-1]を割り当てることができませんでした。あなたは削除したいですか? –

答えて

5

は、先にソース配列からコピーするループのネストされたを持っています。そして、特定のIjについて

static void TestFunction() 
    { 
     int rows = 5; 
     int columns = 6; 
     int sourcearr[][] = new int[rows][columns]; 
     int destinationarr[][] = new int[rows-1][columns-1]; 

     int REMOVE_ROW = 2; 
     int REMOVE_COLUMN = 3; 
     int p = 0; 
     for(int i = 0; i < rows; ++i) 
     { 
      if (i == REMOVE_ROW) 
       continue; 


      int q = 0; 
      for(int j = 0; j < columns; ++j) 
      { 
       if (j == REMOVE_COLUMN) 
        continue; 

       destinationarr[p][q] = sourcearr[i][j]; 
       ++q; 
      } 

      ++p; 
     } 
    } 
+0

しかし、 "sourcearr [i] [j] = 10 * i + j;"の目的は何ですか?ライン? – DrBaus

+0

ちょうどいくつかのテストデータ..何も...あなたのsourcearrには入力データがありますので無視してください –

+0

pとq変数が必要ですか? –

0

をスキップし、私はそれを達成するためにどのようにインデックス2、下、2列の両方3を削除しようとしていますか?

public class For_petlja { 

    public static void main(String[] args) { 

     int[][] niz = { 
      {9, 2, 3, 6, 7}, 
      {4, 7, 3, 5, 1} 
     }; 
     int j; 
     for (int i = 0; i < niz.length; i++) { 
      for (j = 0; j < niz[i].length; j++) { 
       if (i == 2) { 
        continue; 
       } 
      } // for 'j' 
      System.out.println(Arrays.toString(niz[j])); 
     } // for 'i' 
    } // main method. 
} // class 
関連する問題