2013-12-16 49 views
4

那麼爲什麼這不起作用呢?不知道爲什麼這是不可能的 - 我只是想在2d數組中存儲一個2號數組。我知道這將相當於設置存儲[0] [0] =數組[0]和存儲[0] [1] =數組[1],但只是想知道爲什麼這是不正確的。將數組存儲在2d數組中Java

public class Test { 

    public static void main(String[] args) { 
     boolean[][] storage = new boolean[10][2]; 
     boolean[] array = new boolean[2]; 
     array[0] = true; 
     array[1] = false; 

     storage[0][] = array; //Why can't I do this? 
    } 
} 

在此先感謝

+0

應該是'storage [0] = array;',因爲如果storage是一個2-dim數組'storage [i]'是一個1-dim數組,就像你的'array'變量。 –

回答

3

你有一個流浪對括號中的分配。只需使用

storage[0] = array; 
+1

@FraserPrice我注意到你沒有接受你提出的任何問題的答案。如果答案有幫助,請注意,如果有人解決了您的問題,請接受。 – chrylis

0

首先boolean[][] storage = new boolean[10][2]聲明一個數組並初始化它。

所以,你已經創建了11個數組。 boolean[]元素類型之一和boolean type中的10個。

這很好,如果你想直接訪問它的成員,但是如果你最近用new boolean[]創建一個內部數組,那麼這是一個開銷。

改爲使用boolean[][] storage = new boolean[10][];

然後,您可以訪問它的元素,它們是boolean[]類型,並將其分配給它。

storage[0] = array; 
0

你的問題是流浪方括號(我敢肯定,你知道)。您的代碼應該是這樣的:

storage[0] = array; 

以前的答案並沒有真正解釋爲什麼雖然如此,這就是我要做的。

你想要做的是讓第一個位置(storage[0])保持與array相同的值。 array是1維的,所以它只能是的部分storage,它是二維的。