Java基礎(chǔ)入門篇之?dāng)?shù)組初識(shí)
一、數(shù)組
1. 假設(shè)某公司有100個(gè)員工,需要統(tǒng)計(jì)某公司員工的工資情況,首先需要聲明100個(gè)變量來(lái)分別記每個(gè)員工的工資,那么如果按照之前的做法,可能定義的結(jié)構(gòu)如下所示:
int a1,a2,a3,......a100;
要求你輸出這100個(gè)員工的工資,意味著你要寫System.out.println()語(yǔ)句100次。這樣的話就顯得很麻煩,所以我們需要用數(shù)組解決。
2. 數(shù)組指的是一組數(shù)據(jù)的集合,數(shù)組中每個(gè)數(shù)據(jù)叫做元素。在數(shù)組可以存放任意類型的數(shù)據(jù),但是同一個(gè)數(shù)組存放的元素類型需要一致。
3. 數(shù)組的定義如下所示:
int[] a=new int[100];
上面這個(gè)數(shù)組的定義相當(dāng)于在內(nèi)存定義了100個(gè)int類型的變量,第1個(gè)變量的名稱是a[0],第2個(gè)變量的名稱是a[1],第3個(gè)變量名稱是a[2],直到第100個(gè)變量的名稱是a[99]。這些變量的初始值默認(rèn)為0。
int[] a;//定義一個(gè)int[]類型的變量a
a=new int[100];//創(chuàng)建長(zhǎng)度為100的數(shù)組
上面這個(gè)數(shù)組的定義一個(gè)int[]類型的變量a,變量a會(huì)占用一塊內(nèi)存單元格,它還沒(méi)有分配初始的值。
如下圖所示:
a=new int[]創(chuàng)建一個(gè)數(shù)組,把數(shù)組的地址賦值給變量x,內(nèi)存狀態(tài)就發(fā)生了變化。
如下所示:
4. 通過(guò)一個(gè)案例看看如何定義數(shù)組和訪問(wèn)數(shù)組的元素、長(zhǎng)度:
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a;//聲明一個(gè)int[]類型變量a
a=new int[3];//創(chuàng)建數(shù)組為3的長(zhǎng)度
System.out.println("a[0]="+a[0]);//訪問(wèn)數(shù)組的第1個(gè)元素
System.out.println("a[1]="+a[1]);//訪問(wèn)數(shù)組的第2個(gè)元素
System.out.println("a[2]="+a[2]);//訪問(wèn)數(shù)組的第3個(gè)元素
System.out.println("數(shù)組的長(zhǎng)度為:"+a.length);//數(shù)組的長(zhǎng)度
}
輸出的結(jié)果是:
a[0]=0
a[1]=0
a[2]=0
數(shù)組的長(zhǎng)度為:3
我們分析一下上面的代碼,首先是聲明一個(gè)int[]類型變量a,然后創(chuàng)建數(shù)組長(zhǎng)度為3,它是如何訪問(wèn)數(shù)組的元素的呢?通過(guò)a[0]訪問(wèn)數(shù)組的第1個(gè)元素,因?yàn)閿?shù)組下標(biāo)由0開(kāi)始,最大下標(biāo)是數(shù)組元素個(gè)數(shù)-1。a.length屬性是訪問(wèn)數(shù)組的長(zhǎng)度。
二、數(shù)組的靜態(tài)初始化
1.什么是數(shù)組的靜態(tài)初始化
定義數(shù)組時(shí),為數(shù)組的每個(gè)元素賦值就叫做數(shù)組的靜態(tài)初始化。
2.數(shù)組的靜態(tài)初始化兩種方式
類型[] 數(shù)組名 = new 類型[]{值1, 值2, ……};
類型[] 數(shù)組名 = {值1, 值2, ……};
3.數(shù)組的靜態(tài)初始化如何定義和訪問(wèn)數(shù)組的值
如下所示:
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a={1,2,3};//靜態(tài)初始化
System.out.println("a[0]="+a[0]);//訪問(wèn)數(shù)組的第1個(gè)元素
System.out.println("a[1]="+a[1]);//訪問(wèn)數(shù)組的第2個(gè)元素
System.out.println("a[2]="+a[2]);//訪問(wèn)數(shù)組的第3個(gè)元素
System.out.println("數(shù)組的長(zhǎng)度為:"+a.length);//數(shù)組的長(zhǎng)度
}
輸出的結(jié)果為:
a[0]=1
a[1]=2
a[2]=3
數(shù)組的長(zhǎng)度為:3
使用靜態(tài)初始化數(shù)組給每個(gè)元素進(jìn)行賦值,分別是1、2、3。
三、數(shù)組的動(dòng)態(tài)初始化
1.什么是數(shù)組的動(dòng)態(tài)初始化
定義數(shù)組由系統(tǒng)自動(dòng)給元素賦初始值,我們就叫做數(shù)組的動(dòng)態(tài)初始化。
2.動(dòng)態(tài)初始化的方式
類型[] 數(shù)組名 = new 類型[長(zhǎng)度];
3.動(dòng)態(tài)初始化只需要指定數(shù)組的長(zhǎng)度,系統(tǒng)自動(dòng)賦初始值。分配初始值的規(guī)則:
boolean數(shù)據(jù)類型它的系統(tǒng)默認(rèn)值為false;
byte數(shù)據(jù)類型它的系統(tǒng)默認(rèn)值為0;
char數(shù)據(jù)類型它的系統(tǒng)默認(rèn)值為’/u0000’;
short數(shù)據(jù)類型它的系統(tǒng)默認(rèn)值為0;
int數(shù)據(jù)類型它的系統(tǒng)默認(rèn)值為0;
long數(shù)據(jù)類型它的系統(tǒng)默認(rèn)值為0L;
float數(shù)據(jù)類型它的系統(tǒng)默認(rèn)值為0.0f;
double數(shù)據(jù)類型它的系統(tǒng)默認(rèn)值為0.0;
4.動(dòng)態(tài)初始化如何定義和訪問(wèn)數(shù)組的元素
例如:
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a=new int[4];//動(dòng)態(tài)初始化
System.out.println("a[0]="+a[0]);//訪問(wèn)數(shù)組的第1個(gè)元素
System.out.println("a[1]="+a[1]);//訪問(wèn)數(shù)組的第2個(gè)元素
System.out.println("a[2]="+a[2]);//訪問(wèn)數(shù)組的第3個(gè)元素
System.out.println("a[3]="+a[3]);//訪問(wèn)數(shù)組的第3個(gè)元素
System.out.println("數(shù)組的長(zhǎng)度為:"+a.length);//數(shù)組的長(zhǎng)度
}
輸出的結(jié)果:
a[0]=0
a[1]=0
a[2]=0
a[3]=0
數(shù)組的長(zhǎng)度為:4
四、總結(jié)
本文介紹了數(shù)組定義、數(shù)組的靜態(tài)初始化、數(shù)組的動(dòng)態(tài)初始化。詳細(xì)介紹了數(shù)組的內(nèi)容,數(shù)組的定義和訪問(wèn)數(shù)組的元素、長(zhǎng)度通過(guò)圖片和案例結(jié)合。靜態(tài)初始化是定義數(shù)組,為每個(gè)元素賦值。動(dòng)態(tài)初始化是由于系統(tǒng)會(huì)自動(dòng)給它們賦值。靜態(tài)初始化和動(dòng)態(tài)初始化詳細(xì)的講解這兩個(gè)用法,通過(guò)圖片和案例結(jié)合來(lái)理解這用法。希望大家通過(guò)本文的學(xué)習(xí),對(duì)你有所幫助!