簡體   English   中英

Java二維數組定義

[英]Java Two Dimensional Array Definition

我有一個基本的問題。

例如:

int a[][] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}} 

我們說它是[3] [4],因為它有3個元素,每個元素都有自己的4個元素。

但怎么樣:

int a[][] = {{1},{5,6,7},{9,10,11,12}} 

還在[3] [4]嗎?


更新

所以基於下面的有用評論,我的第一個例子可以寫成[3] [4]數組,但第二個例子不能像那樣表示,對吧?

這些被稱為Jagged Arrays ,它們不被認為是m-by-n ,因為它們不符合Matrix的形式定義。

在數學中,矩陣(多個矩陣)是以行和列排列的數字,符號或表達式的矩形陣列。

根據java

多維數組是一個數組,其組件本身就是數組。 這與C或Fortran中的數組不同。 其結果是允許行的長度變化。

int a[][]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}

這里你不能說[3] [4]數組,但可以說它有3個元素,每個元素都有自己的4個元素。

int a[][]={{1},{5,6,7},{9,10,11,12}}
所以在這里你可以說數組有3個元素,每個元素都有不同數量的元素。

我剛剛在Android環境中進行了此測試,這可能適用於這種情況(我認為)

int a[][] = { { 1 }, { 5, 6, 7 }, { 9, 10, 11, 12 } };
    for (int i = 0; i < a.length; i++) {
        Log.i("", "i: " + i);
        for (int j = 0; j < a[i].length; j++) {
            Log.i("", "j: " + j);
        }
}

我得到的是:

i: 0
j: 0
i: 1
j: 0
j: 1
j: 2
i: 2
j: 0
j: 1
j: 2
j: 3

所以, a不是int[3][4]

這不是[3] [4]。

陣列 ,其中外部陣列維數“3”和陣列元素,這是再一次陣列,分別具有不同長度,即1,3和4的陣列

不它不是。 當你像int[][] test = new int[3][4]那樣只是語法糖。 雙陣列沒什么神奇的。

兩個示例都是數組的數組。 你的第一個碰巧讓所有這些陣列都具有相同的成功,而你的第二個則沒有。

作為旁注,絕大多數java程序員使用int[][] a表示法,而不是int a[][]表示法。

Java中沒有二維數組。

只存在數組數組, 其中每個數組可以具有不同的長度

對於矩陣,請考慮線性內存布局,並使用其中一個現有庫。

請注意,以下內容在Java中有效:

int[][] example = new int[2][2];
example[0] = new int[]{1,2,3,4,5,6,7,8,9,10};

而適當的矩陣模塊不允許這種情況發生。

既是優點,也是弱點 有些應用程序只需要數組數組。 並且存在更有效的情況(例如,僅存儲半個三角形矩陣)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM