2014-09-04 156 views
0

這一直竊聽我,所以我把它給社會的希望,有人能幫助我。比方說,我有一個二維數組如的Java 2D陣列尺寸

int[][] arr = new int[2][3]; 

我從來沒有真正能夠弄清楚如何看待這個陣列。它是2 x 3還是3 x 2結構。我可以編寫方法來打印出兩種組合。

或者另一種方式來思考這是2D陣列僅僅是一個數組的數組。但它是一個長度爲3的數組,其中每個分量都是長度爲2的數組,或者是長度爲2的數組,其中每個分量都是長度爲3的數組。

實際上,2引用的維數這三個是指哪個,還是它甚至重要?

+1

[二維數組,行或列首先出現]的可能重複(http://stackoverflow.com/questions/11641985/which-comes-first-in-a-2d-array-rows-or -列) – BackSlash 2014-09-04 18:36:21

回答

1

你能想到的2D陣列,可以是結構「由Y X」或「Y由X」的結構,通過改變可變訪問哪個維度。因此,它可以是2 x 3或3 x 2結構。

但沒有對尺寸的訂單。甲int[2][3]是2個int[3] S,其中的每一個保持3 int秒的陣列。

除了指定順序外,尺寸中沒有固有含義。您可以爲每個維度指定任何含義。

2

它是2個數組的數組,並且它們中的每個3個元素的陣列。就那麼簡單。

0

A 3步驟的過程:

//創建單一參考NUMS(黃色正方形)

int [][] nums; 

//創建引用的陣列(藍色正方形)

nums = new int[5][]; 

//創建第二級陣列(紅色正方形)

for (int i=0; i < 5 ; i++) 
    nums[i] = new int[4]; // create arrays of integers 

注:當你最初聲明一個二維數組:

必須始終指定第一維度 NUMS =新INT [] []; //非法 - 需要1ST DIMENSION

不需要指定第二尺寸數組的

nums = new int[5][]; // OK 
nums = new int[5][4]; // OK 

元素:如果NUMS是2D陣列如上所示,

nums[i][j] // represents a single integer in that array 
nums[i] //represents a 1D array (a single row in the 2D array) 

請有關主題的更多信息,請參閱鏈接。

http://www.processing.org/tutorials/2darray/

http://www.leepoint.net/notes-java/data/arrays/arrays-2D.html

http://www.willamette.edu/~gorr/classes/cs231/lectures/chapter9/arrays2d.htm

0

二維陣列被定義爲 「數組的數組」。由於數組類型是第一類Java類型,我們可以有一個int數組,一個字符串數組或一個對象數組。例如,一個int數組的類型將是int[]。同樣,我們可以有int[][],它表示一個「整數數組」數組。這種數組被認爲是一個二維數組。 命令

int[][] A = new int[2][3]; 

聲明變量,A,int[][]型的,並且它初始化變量來引用新創建的對象。該對象是一個int數組的數組。在這裏,符號int[2][3]表示數組A中有兩個ints數組,每個數組中有三個ints。