陣列的基本概念

2022-09-07 00:18:25 字數 2923 閱讀 9898

如果說現在要求你定義100個整型變數,那麼如果按照之前的做法,可能現在定義的的結構如下:

int i1, i2, i3, ... i100;

1

但是這個時候如果按照此類方式定義就會非常麻煩,因為這些變數彼此之間沒有任何的關聯,也就是說如果現在突然再有乙個要求,要求你輸出這100個變數的內容,意味著你要編寫system.out.println()語句100次。

其實所謂的陣列指的就是一組相關型別的變數集合,並且這些變數可以按照統一的方式進行操作。陣列本身屬於引用資料型別,那麼既然是引用資料型別,這裡面實際又會牽扯到記憶體分配,而陣列的定義語法有如下兩類。

分布進行陣列空間開闢(例項化)| tables | are || ------------- |:-------------?| 宣告陣列: | 陣列型別 陣列名稱 =null; | | | 陣列型別 陣列名稱 =null; | | 開闢陣列空間: | 陣列名稱 =new` 陣列型別[長度]; |

那麼當陣列開闢空間之後,就可以採用如下的方式的操作:

範例:定義乙個int型陣列

public class arraydemo }}

1234567891011

陣列本身除了宣告並開闢空間之外還有另外一種開闢模式。

範例:採用分步的模式開闢陣列空間

public class arraydemo }}

123456789101112

但是千萬要記住,陣列屬於引用資料型別,所以在陣列使用之前一定要開闢控制項(例項化),如果使用了沒有開闢空間的陣列,則一定會出現nullpointerexception異常資訊:

public class arraydemo 

}123456

這一原則和之前講解的物件是完全相同的。

陣列在開發之中一定會使用,但是像上面的操作很少。在以後的實際開發之中,會更多的使用陣列概念,而直接使用,99%情況下都只是做乙個for迴圈輸出。

既然陣列屬於引用資料型別,那麼也一定可以發生引用傳遞。在這之前首先來研究一下陣列的空間開闢。

範例:觀察一道程式

那麼既然說到了引用資料型別了,就一定可以發生引用傳遞,而現在的引用傳遞的本質也一定是:同一塊堆記憶體空間可以被不同的棧記憶體所指向。

範例:定義乙個程式

引用傳遞分析都是乙個套路。同一塊堆記憶體被不同的棧記憶體所指向。

在之前所進行的陣列定義都有乙個明顯特點:陣列先開闢記憶體空間,而後再使用索引進行內容的設定,實際上這種做法都叫做動態初始化,而如果希望陣列在定義的時候可以同時出現設定內容,那麼就可以採用靜態初始化完成。

陣列的靜態初始化一共分為以下兩種型別:

tables

are簡化格式:

資料型別 陣列名稱 =

完整格式:

資料型別 陣列名稱 = new 資料型別

範例:採用靜態初始化定義陣列

public class arraydemo ;

for(int i = 0; i < data.length; i++) }}

12345678

在開發之中,對於靜態陣列的初始化強烈建議使用完整語法模式,這樣可以輕鬆地使用匿名陣列這一概念。

public class arraydemo .length);}}

12345

以後使用靜態方式定義陣列的時候一定要寫上完整格式。

陣列最大的缺陷:長度固定。

在之前所使用的陣列發現只需要乙個索引就可以進行訪問,那麼這樣的陣列實際上非常像乙個資料行的概念。索引0

1234

5678

內容12

2344

5690

44549

991010

現在痛過乙個索引就可以取得唯一的乙個記錄。所以這樣的陣列可以簡單理解為一維陣列,而二維陣列本質上指的是行列集合,也如果要確定某乙個資料需要行索引和列索引來進行定位。索引0

1234

5678

0122344

5690

44549

99101012

341569

4549

9910

如果要想確定乙個資料則資料使用的結構是「陣列名稱行索引

」,所以這樣的結構就是乙個表的結構。

那麼對二維陣列的定義有兩種宣告形式:

陣列的陣列就是二維陣列。

範例:定義乙個二維陣列

public class arraydemo , , };

//如果在進行輸出的時候一定要使用雙重迴圈,

//外部的迴圈控制輸出的行數,而內部的迴圈控制輸出列數

for(int i = 0; i < data.length; i++)

system.out.println();}}

}123456789101112131415

由於輸出麻煩,所以可以忽略了,在進行開發之中,出現二位陣列的機率並不高。

陣列的基本概念

陣列是儲存1個或多個資料的容器,它是一組記憶體空間。通常用來批量處理資料 這組記憶體空間的名字,叫做陣列名 陣列 對其自身儲存的陣列元素並沒有什麼限制,無論是數量還是型別 通過陣列下標 從0開始 來管理陣列元素,不能直接通過陣列名來運算元組元素,需要結合下標 陣列名.length 表示的是陣列的長度...

陣列的基本概念

什麼是陣列 陣列是儲存1個或多個資料的容器,它是一組記憶體空間。通常用來批量處理資料 這組記憶體空間的名字,叫做陣列名 陣列是個不挑食的傢伙,對其自身儲存的陣列元素並沒有什麼限制,無論是數量還是型別。通過陣列下標 從0開始 來管理陣列元素,不能直接通過陣列名來運算元組元素,需要結合下標 陣列名.le...

陣列的基本概念

建立乙個陣列 陣列就是乙個 在 裡面儲存有各種各樣的資料,按照順序依次排好字面量建立乙個陣列 直接使用 的方式建立乙個陣列內建建構函式建立陣列 使用js內建的建構函式array建立乙個陣列 陣列的length length 長度 length 表示陣列的長度,就是陣列裡面有多少個成員,length就...