2015-04-22 23 views
0

你能從Java中的3維數組中得到一個子數組嗎?我對Java很陌生,需要一些幫助。你能從3維數組中獲得一個2維數組嗎?

threeDimensions[][][] = { 
    { 
     {false, true, false, false}, 
     {false, true, false, false}, 
     {false, true, false, false}, 
     {false, true, false, false}, 
    }, 
    { 
     {false, false, false, false}, 
     {false, true, true, false}, 
     {false, true, false, false}, 
     {false, true, false, false}, 
    } 
}; 

twoDimensions = threeDimensions[0]; 

這種方式不起作用,但有沒有辦法做到這一點沒有循環?

+0

它爲什麼不起作用?什麼是「三維」?你的類型聲明在哪裏?數組應該聲明爲'boolean [] array'而不是'布爾數組[]' - 後者是傳統語法並且應該避免。 –

+0

「這種方式不起作用」您能更具體地瞭解「不起作用」的部分嗎?請讓我們知道您希望發生的事情,然後會發生什麼。 – dasblinkenlight

+0

我知道關於聲明,但給我打印出來時danull – Clutchy

回答

2

你的方法確實有用,但你剛纔的語法有點不對。它應該是

boolean[][][] threeDimensions = { 
    { 
     {false, true, false, false}, 
     {false, true, false, false}, 
     {false, true, false, false}, 
     {false, true, false, false}, 
    }, 
    { 
     {false, false, false, false}, 
     {false, true, true, false}, 
     {false, true, false, false}, 
     {false, true, false, false}, 
    } 
}; 

boolean[][] twoDimensions = threeDimensions[0]; 

如果您的問題被打印出來,你需要寫

System.out.println(Arrays.deepToString(twoDimensions)); 
+0

@Clutchy這有幫助嗎? –

+0

是非常感謝 – Clutchy

2

,你認爲它的工作原理它的工作原理完全一樣。 你只是忘記將twoDimensions聲明爲一個二維數組。 這樣做:

Boolean twoDimensions[][] = threeDimensions[0]; 
+0

我只需要使用布爾類? – Clutchy

+0

謝謝,你推薦使用'布爾代替'布爾值嗎? – Clutchy

+0

不,在這種情況下,使用布爾值或布爾值無關緊要。 我在談論變量twoDimensions的聲明。 你可以發佈你聲明twoDimensions的代碼嗎? 發佈的代碼pbabcdefp應該可以工作。 – AlexanderW