0 前言
本文講解java數組的基礎知識,適合零基礎小白。
1 數組的概念
所謂數組,就是一組同類型東西的集合,可以通過index(索引,下標)訪問這一組東西的某一個元素。
就像下圖這樣,由于數組概念過于簡單,不解釋了。
2 數組的定義及使用
2.1 數組的聲明(Declare an array)
所謂聲明,就是告訴你,這里有這么個東西,但是它既沒有空間,也沒有數值,在被使用之前,它可以看做 “一句空話”。
有以下兩種寫法
int a [];
int [] b;
順便說一句,這兩種形式都可以聲明數組,但是在Java中,通常我們使用后者,之后的內容也全部使用int [] b
的形式。
2.2 數組的聲明和開辟內存空間(Open up a memory space)
聲明一個數組,并且為它開辟一個空間,占個地方,但是不在里面存放東西。
有以下寫法
int [] a = new int [4];
另外,可能出現沒有占到地方的情況,我們后面會說(第4節)。
2.3 數組的聲明、開辟內存空間和初始化賦值(Initialize an array)
有以下兩種寫法
int [] a = {11,22,33,44};
int [] b = new int [] {11,22,33,44};
對于以下語句
new int [] {11,22,33,44};
它的本質,是一個匿名數組,就是不宣布數組的名稱,但是仍然創建了一個數組。因此它可以作為一個游蕩的數組,靈活使用于很多場景。
例如
return new int [] {1,2,3,4};
對于任意的,只需要使用數組,但是不需要定義數組名稱的地方,都可以使用這個表達式。
另外,可能出現賦空值的情況,比如直接就是{}
,里面沒有東西,我們在后面會說明(第4節)。
2.4 聲明之后如何開辟空間和賦值
做出聲明之后
int [] a;
如何開辟空間和賦值呢?
- 首先,關于開辟空間,和前面完全一樣,只不過把2.2節的語句
int [] a = new int [4];
拆開寫了
int [] a;
a = new int [4];
- 然后,關于賦值,同理,結合2.3節的語句,也是拆開寫了
int [] a;
a = new int [4];
a[0] = 11;
a[1] = 22;
a[2] = 33;
a[3] = 44;
或者使用另外一條語句
int [] a;
a = new int [] {11,22,33,44};
2.5 聲明和開辟空間之后如何賦值
int [] a = new int [4];
在這之后,如何賦值,我就不多說了。
a[0] = 11;
a[1] = 22;
a[2] = 33;
a[3] = 44;
當然怎么賦值都可以,需要注意的是開辟空間后的數組的訪問方式,對于a[0]
這樣的語句是什么意思,我們后面說。
2.6 賦值之后如何使用
通過下標訪問即可,只要是開辟了空間或者已經賦值的,都可以這樣,例如a[0]
,需要注意幾點
- 下標從0開始,可以是變量,例如
int zero = 0;
訪問的時候可以寫a[zero];
- 開辟空間后,數組長度固定(變長數組以后再說)
3 在項目中規范化地定義和使用數組
不建議直接出現數字,因為數字的含義有很多,時間長了自己可能不記得數字的具體含義,其他程序員看到這個數字,也可能會費解,因此,建議將數字符號化,例如:
存儲10個學生的總分數
建議這樣使用
int studentCount = 10;
double [] studentSumScore = new double [studentCount];
而不是下面這種寫法
double [] studentSumScore = new double [10];
這樣的寫法,對于復雜的程序,時間長了,可能會迷茫,10代表啥?這是啥?
你也許會說,不是可以有注釋嗎?我只能告訴你:能在程序中說明白的,就不要添加注釋。
另外,關于數組的訪問,也可以參考,比如把studentSumScore[0]
寫成studentSumScore[stuOne]
。
具體有沒有必要,還是結合實際,如果是徒增麻煩,就不要用了。
4 數組中的特殊值:0與null
首先明確一下,先分成兩類
- 針對數組本身: 數組的長度為0和數組本身為null
- 數組元素內容: 數組不為0,數組元素的值為0或者為null
0與null的含義
- 二者本質上,都是某種具有含義的特殊數值
- 0就是空empty,本身存在,但是沒有內容,啥都沒有
- null就是虛無,就是本身不存在,更沒有內容
4.1 數組本身
數組長度為0,空數組,但是為其分配了內存空間的位置(有一席之地)
int[] a = new int[0];
int[] b = new int[]{};
數組為null,系統沒有為其分配其內存空間(沒有地方,只能流浪)
int[] c = null;
4.2 數組元素內容
前提是,創建了一個非空的數組。
這里特指:為一個數組開辟了空間但是沒有賦值時候,數組元素的值可能為0,可能為null
例如以下形式,其中,int
可以代表基本數據類型和引用數據類型(float,boolean,String)
int[] a = new int[4];
其中
- 數值型的數據類型,默認初始化為0
- 字符型,默認為空字符
- 布爾型,默認為false
- 對象(引用數據類型),比如String,默認為null
以下為實例測試
int[] b = new int[10];
System.out.println("int默認:\t"+b[0]);boolean[] g = new boolean[4];
System.out.println("boolean默認:"+g[0]);char[] w = new char[4];
System.out.println("char默認:\t"+w[0]);String[] c = new String[10];
System.out.println("String默認:\t"+c[0]);
輸出結果為
下一篇文章:【java圖文趣味版】數組元素的訪問與遍歷
本文中圖片使用億圖圖示(試用版)制作,之后截圖上傳,侵刪。