一苛秕、數(shù)組
數(shù)組(array)是一種最簡單的復(fù)合數(shù)據(jù)類型,它是有序數(shù)據(jù)的集合女气,數(shù)組中的每個(gè)元素具有相同的數(shù)據(jù)類型拇涤,可以用一個(gè)統(tǒng)一的數(shù)組名和不同的下標(biāo)來確定數(shù)組中唯一的元素捣作。根據(jù)數(shù)組的維度,可以將其分為一維數(shù)組鹅士、二維數(shù)組和多維數(shù)組等券躁。
數(shù)組可以理解為是一個(gè)巨大的“盒子”,里面可以按順序存放多個(gè)類型相同的數(shù)據(jù)掉盅,比如可以定義 int 型的數(shù)組 scores 存儲(chǔ) 4 名學(xué)生的成績
數(shù)組中的元素都可以通過下標(biāo)來訪問也拜,下標(biāo)從 0 開始。例如趾痘,可以通過 scores[0] 獲取數(shù)組中的第一個(gè)元素 76 慢哈,scores[2] 就可以取到第三個(gè)元素 92
Java 中操作數(shù)組只需要四個(gè)步驟:
1、 聲明數(shù)組
語法: 數(shù)據(jù)類型[ ] 數(shù)組名永票;
或者 數(shù)據(jù)類型 數(shù)組名[ ]卵贱;
其中,數(shù)組名可以是任意合法的變量名侣集,如:
int[] scores;
double height[];
String[] names;
2键俱、 分配空間
簡單地說,就是指定數(shù)組中最多可存儲(chǔ)多少個(gè)元素
語法: 數(shù)組名 = new 數(shù)據(jù)類型 [ 數(shù)組長度 ];
其中世分,數(shù)組長度就是數(shù)組中能存放元素的個(gè)數(shù)编振,如:
scores = new int[5] ;
height = new double[5];
names = new String[5] ;
話說,我們也可以將上面的兩個(gè)步驟合并臭埋,在聲明數(shù)組的同時(shí)為它分配空間党觅,如:
int[] scores = new int[5];
3、 賦值
分配空間后就可以向數(shù)組中放數(shù)據(jù)了斋泄,數(shù)組中元素都是通過下標(biāo)來訪問的杯瞻,例如向 scores 數(shù)組中存放學(xué)生成績
scores[0] = 89;
scores[1] = 79;
4、 處理數(shù)組中數(shù)據(jù)
我們可以對(duì)賦值后的數(shù)組進(jìn)行操作和處理炫掐,如獲取并輸出數(shù)組中元素的值
System.out.println("scores數(shù)組中第一個(gè)元素的值:"+scores[0]);
在 Java 中還提供了另外一種直接創(chuàng)建數(shù)組的方式魁莉,它將聲明數(shù)組、分配空間和賦值合并完成募胃,如
int[] scores={78,91,84,68};
它等價(jià)于:
int[] scores=new int[]{78,91,84,68};
定義了一個(gè)數(shù)組 subjects 旗唁,用于保存考試科目信息
public class HelloWorld {
public static void main(String[] args) {
// 定義一個(gè)長度為5的字符串?dāng)?shù)組,保存考試科目信息
String[] subjects = new String[5] ;
// 分別為數(shù)組中的元素賦值
subjects[0] = "Oracle";
subjects[1] = "PHP";
subjects[2] = "Linux";
subjects[3] = "Java";
subjects[4] = "HTML";
System.out.println("數(shù)組中第4個(gè)科目為:" + subjects[3] );
}
}
二痹束、使用循環(huán)操作 Java 中的數(shù)組
實(shí)際開發(fā)中我們經(jīng)常使用循環(huán)控制數(shù)組成員的操作检疫。如:
運(yùn)行結(jié)果:
其中, **數(shù)組名.length ** 用于獲取數(shù)組的長度
需要注意的“小毛病”:
1祷嘶、 數(shù)組下標(biāo)從 0 開始屎媳。因此 scores[3] 夺溢,表示數(shù)組中的第 4 個(gè)元素,而并非第 3 個(gè)元素
2烛谊、 數(shù)組**下標(biāo)的范圍是 0 至 數(shù)組長度-1 **风响,如果越界訪問,就會(huì)報(bào)錯(cuò)丹禀。如:
運(yùn)行時(shí)會(huì)報(bào)如下錯(cuò)誤:
上面錯(cuò)誤信息的意思是數(shù)組下標(biāo)超過范圍状勤,即數(shù)組訪問越界。在上面的代碼中創(chuàng)建一個(gè)長度為 2 的數(shù)組双泪,因此數(shù)組下標(biāo)范圍是 0 到 1 持搜,而程序中下標(biāo)出現(xiàn)了 2 ,即 scores[2] 焙矛,超過了范圍葫盼,造成數(shù)組訪問越界。
練習(xí)
public class HelloWorld {
public static void main(String[] args) {
// 定義一個(gè)長度為 3 的字符串?dāng)?shù)組薄扁,并賦值初始值
String[] hobbys = { "sports", "game", "movie" };
System.out.println("循環(huán)輸出數(shù)組中元素的值:");
// 使用循環(huán)遍歷數(shù)組中的元素
for (int i =0 ;i<=2;i++){
System.out.println(hobbys[i]);
}
}
}
任務(wù)要求:
1剪返、 定義一個(gè)整型數(shù)組废累,并賦初值 61, 23, 4, 74, 13, 148, 20
2邓梅、 定義變量分別保存最大值、最小值邑滨、累加值和平均值日缨,并假設(shè)數(shù)組中的第一個(gè)元素既為最大值又為最小值
3、 使用 for 循環(huán)遍歷數(shù)組中的元素掖看,分別與假定的最大值和最小值比較匣距。如果比假定的最大值要大,則替換當(dāng)前的最大值哎壳;如果比假定的最小值要小毅待,則替換當(dāng)前的最小值
4、 循環(huán)執(zhí)行過程中對(duì)數(shù)組中的元素進(jìn)行累加求和
5归榕、 循環(huán)結(jié)束根據(jù)累加值計(jì)算平均值尸红,并打印輸出相關(guān)內(nèi)容
public class HelloWorld {
public static void main(String[] args) {
// 定義一個(gè)整型數(shù)組,并賦初值
int[] nums = new int[] { 61, 23, 4, 74, 13, 148, 20 };
int max = nums[0]; // 假定最大值為數(shù)組中的第一個(gè)元素
int min = nums[0]; // 假定最小值為數(shù)組中的第一個(gè)元素
double sum = 0;// 累加值
double avg = 0;// 平均值
for (int i = 0; i < nums.length; i++) { // 循環(huán)遍歷數(shù)組中的元素
// 如果當(dāng)前值大于max刹泄,則替換max的值
if (nums[i]>max){
max = nums[i];
}
// 如果當(dāng)前值小于min外里,則替換min的值
if (nums[i]<min){
min = nums[i];
}
// 累加求和
sum += nums[i];
}
// 求平均值
avg = sum/nums.length;
System.out.println("數(shù)組中的最大值:" + max);
System.out.println("數(shù)組中的最小值:" + min);
System.out.println("數(shù)組中的平均值:" + avg);
}
}