淺談數組

數組是存儲相同數據類型變量的容器。有了數組,我們可以很方便定義多個相同數據類型的變量,而不需要使用int 變量名的形式來定義。
數組有一維數組、二維數組、 . . . 、n維數組。但我們常用的是一維數組和二維數組。

一維數組

數組定義格式:
格式一:數組類型[] 數組名;
格式二:數組類型 數組名[];
推薦使用第一種格式來定義數組。

舉例:
int[] a; 定義了一個數組名爲a的數組
int a[]; 定義了一個數組名爲a的數組

在Java中要使用數組,就需要先對數組進行初始化纔可以。何爲初始化?初始化就是對數組中的各個元素分配內存空間,同時爲每個元素賦值。

數組的初始化有兩種方式:

  • 動態初始化
  • 靜態初始化

所謂動態初始化是我們在定義數組的時候,只給出數組的長度,由系統給數組賦初始值。
動態初始化的格式:
數組類型[] 數組名 = new 數組類型[數組長度];
所謂的數組長度就是數組中元素的個數。
舉例:
int[] a = new int[10];
所謂靜態初始化是在定義數組的時候,我們給數組賦初始值,但是數組的長度由系統給出。
靜態初始化的格式:
數組類型[] 數組名 = new 數組類型[]{元素1,元素2,元素3,. . .};
簡化格式爲:
數組類型[] 數組名 = {元素1,元素2,. . .};

數組的訪問

瞭解了數組如何進行初始化之後,我們就可以利用數組下標來訪問數組了,即 數組名[下標];需要注意的是數組的下標是從0開始的,到數組長度-1結束。
舉例:
int[] a = new int[3]; // 定義了一個長度爲3的數組
a[1] = 3;
在這裏插入圖片描述
數組的遍歷
在這裏插入圖片描述

但在訪問數組的時候我們稍不注意就會遇到以下兩個常見的問題:

  • ArrayIndexOutOfBoundsException:這個問題是數組索引越界異常。
    產生這個問題的原因就是訪問了不存在的索引。
  • NullPointerException:這個問題是空指針異常。
  • 產生這個問題的原因是,在棧內存已經釋放了指向在堆內存的數組指針,我們還要去訪問這個數組的元素,其實是無法訪問的。

二維數組

何爲二維數組?
在瞭解掌握一維數組的基礎上,二維數組很容易理解。二維數組就是每一個元素都是一維數組的數組。

二維數組的定義:

  • 數據類型[][] 數組名;

初始化二維數組的方式同樣也分爲動態初始化和靜態初始化。
動態初始化:

  • 數組類型[][] 數組名 = new 數組類型[m][n];
    m表示的是這個二維數組有多少個一維數組
    n表示的是每個一維數組中有多少個元素
    簡單理解:m是數組的行數,n是數組的列數
    舉例:
    int[][]   array   =   new   int[3][4];
    該語句的意思是我們定義了一個3行4列的二維數組,數組名爲array。在這個數組中有三個一維數組,每個一維數組中有四個元素。
    除此之外,我們還可以這樣定義數組:
    數組類型 數組名[][] = new 數組類型[][];
    數組類型[] 數組名[] = new 數組類型[][];
    但是還是最好還是以 數組類型[][] 數組名 = new 數組類型[m][n]; 這樣的方式定義數組。
    在這裏插入圖片描述

  • 數據類型[][] 數組名 = new 數據類型[m][];
    m表示的是這個二維數組有幾個一維數組,即二維數組有幾行,但是沒有明確定義這個每個一維數組中有幾個元素,即沒有明確定義二維數組的列數,此時二維數組的列數可以動態給出。
    舉例:
    int[][]  array  =  new   int[2][];
    定義了一個數組名爲array的二維數組,其中有三個一維數組,沒有明確定義每個一維數組的元素個數,此時元素個數可以動態給出。

靜態初始化

  • 數據類型[][] 數組名 = new 數據類型[][]{{元素…},{元素…},{元素…}…};
    簡單點寫,可以寫爲:
    數據類型[][] 數組名 = {{元素…},{元素…},{元素…}…};
    這樣的方式是直接給數組賦了初始值,數組的長度由系統給出。
    舉例:
    在這裏插入圖片描述

定義了二維數組後,我們可以使用數組名[下標1][下標2] 來進行二維數組元素的訪問。其中i代表的是二維數組的行數,範圍爲0到行數-1;j代表的是二維數組的列數,範圍爲0到列數-1。
二維數組元素的訪問
在這裏插入圖片描述
二維數組的遍歷
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章