當我創建一個新的多維陣列(在此情況下對象的數組)多維數組中array.length和array [0] .length之間的區別?
public Block[][] block = new Block[50][70];
是什麼區別:
block.length
和
block[0].length
,然後什麼是
block[1].length
當我創建一個新的多維陣列(在此情況下對象的數組)多維數組中array.length和array [0] .length之間的區別?
public Block[][] block = new Block[50][70];
是什麼區別:
block.length
和
block[0].length
,然後什麼是
block[1].length
你期望什麼?你有一個多維數組。因此,有不止一個維度。每個維度都有一個長度。用block.length
可以得到第一個的長度(即50
),用block[x].length
可以得到第二個的長度(即70
)。
既然你像這樣分配你的數組,所有的block[x].length
將是平等的,不管你選擇什麼x
。但是,您可以使用嵌套數組的長度不同的數組,然後block[0].length
可能不等於block[1].length
。
block.length
是行數。 block[0].length
是行0中的列數。block[1].length
應具有與block[0].length
相同的值,因爲它具有與第一行相同的列數。
如果您認爲Block[][]
爲的Block
行和列,每一行是列的Block[]
,和行的陣列將是一個Block[][]
,則:
block.length // the number of rows
block[0].length // the number of columns on row 0
block[1].length // the number of columns on row 1
// etc
在這裏你有二維陣列。它有50行和70列。這意味着...
關於塊陣列... 塊陣列看起來像(行&逐列)
block= 0...1...2...3...4...SO..ON...69
1
2 50
3
4
5
SO..ON
..
..
49
現在你有塊陣列的表格格式。現在可以說我想要得到塊[2] [3]的值......這意味着如上所示的第2行和第3列是50。
block.length塊數組的總行數。
塊[0]的參照塊陣列的第0行,因此,嵌段[0]。長度爲您提供了第0行其中70所以ANS將是70相關聯的列(注意:總計數)......
依此類推......
「每個維度都有一個長度」 - 並非真的,每個*子陣列都有一個長度,而且它們可以有不同的長度。他們是「鋸齒狀陣列」。 – kviiri
@kviiri:這句話並不是關於一般Java數組,而是用作具有'new X [y] [z]'的多維數組的數組。 – gexicide
我仍然會澄清,因爲這個問題是關於Java數組的。 – kviiri