0
我試圖將一個16×4000維數組轉換爲1000個8×8數組塊。我應該在運行此代碼後以1000個這樣的塊結束。這是我寫的,我需要知道我做錯了什麼,因爲這段代碼只給了我500塊的東西。將二維數組轉換爲二維數組的多個塊
blockedCode(d); //d is a two D 16 x 4000 array
private static void blockedCode(int[][] array)
{
int one=0;
for (int i = 0; i < array.length; i += 8)
{
for (int j = 0; j < array[i].length; j += 8)
{
int block = (((i/8) * 8) + (j/8));
System.out.println("Block : " + block);
int[][] newArray = new int[8][8];
int newRow = 0;
List list = new ArrayList<>();
for (int k = i; k < (i + 8); k++)
{
int newColumn = 0;
for (int l = j; l < (j + 8); l++)
{
// This is where you are getting your array inside the given block.
newArray[newRow][newColumn] = array[k][l];
one++;
// System.out.format("[%-1s][%-1s] : %-3s ", newRow, newColumn, newArray[newRow][newColumn++]);
}
newRow++;
}
}
}
}
你我thod看起來充滿了未經測試的代碼,評論和空行...我建議你用TDD從頭開始編寫程序,然後你就會知道它的工作原理。 – 2014-11-22 08:37:58
我喜歡'int one = 0' :) – 2014-11-22 08:40:44