數(shù)組對于每一門編程語言來說都是重要的數(shù)據(jù)結(jié)構(gòu)之一,當(dāng)然不同語言對數(shù)組的實現(xiàn)及處理也不盡相同。
Java 語言中提供的數(shù)組是用來存儲固定大小的同類型元素。
你可以聲明一個數(shù)組變量,如 numbers[100] 來代替直接聲明 100 個獨立變量 number0秩伞,number1逞带,....侧巨,number99凛澎。
本教程將為大家介紹 Java 數(shù)組的聲明、創(chuàng)建和初始化垦垂,并給出其對應(yīng)的代碼怒炸。
聲明數(shù)組變量
首先必須聲明數(shù)組變量带饱,才能在程序中使用數(shù)組毡代。下面是聲明數(shù)組變量的語法:
dataType[] arrayRefVar;? // 首選的方法
或
dataType arrayRefVar[];? // 效果相同阅羹,但不是首選方法
注意: 建議使用 dataType[] arrayRefVar 的聲明風(fēng)格聲明數(shù)組變量。 dataType arrayRefVar[] 風(fēng)格是來自 C/C++ 語言 教寂,在Java中采用是為了讓 C/C++ 程序員能夠快速理解java語言捏鱼。
實例
下面是這兩種語法的代碼示例:
double[] myList;? ? ? ? // 首選的方法
或
double myList[];? ? ? ? //? 效果相同,但不是首選方法
創(chuàng)建數(shù)組
Java語言使用new操作符來創(chuàng)建數(shù)組酪耕,語法如下:
arrayRefVar = new dataType[arraySize];
上面的語法語句做了兩件事:
一导梆、使用 dataType[arraySize] 創(chuàng)建了一個數(shù)組。
二迂烁、把新創(chuàng)建的數(shù)組的引用賦值給變量 arrayRefVar看尼。
數(shù)組變量的聲明,和創(chuàng)建數(shù)組可以用一條語句完成盟步,如下所示:
dataType[] arrayRefVar = new dataType[arraySize];
另外藏斩,你還可以使用如下的方式創(chuàng)建數(shù)組。
dataType[] arrayRefVar = {value0, value1, ..., valuek};
數(shù)組的元素是通過索引訪問的却盘。數(shù)組索引從 0 開始狰域,所以索引值從 0 到 arrayRefVar.length-1。
實例
下面的語句首先聲明了一個數(shù)組變量 myList黄橘,接著創(chuàng)建了一個包含 10 個 double 類型元素的數(shù)組兆览,并且把它的引用賦值給 myList 變量。
TestArray.java 文件代碼:
public class TestArray {
? public static void main(String[] args) {
? ? ? // 數(shù)組大小
? ? ? int size = 10;
? ? ? // 定義數(shù)組
? ? ? double[] myList = new double[size];
? ? ? myList[0] = 5.6;
? ? ? myList[1] = 4.5;
? ? ? myList[2] = 3.3;
? ? ? myList[3] = 13.2;
? ? ? myList[4] = 4.0;
? ? ? myList[5] = 34.33;
? ? ? myList[6] = 34.0;
? ? ? myList[7] = 45.45;
? ? ? myList[8] = 99.993;
? ? ? myList[9] = 11123;
? ? ? // 計算所有元素的總和
? ? ? double total = 0;
? ? ? for (int i = 0; i < size; i++) {
? ? ? ? total += myList[i];
? ? ? }
? ? ? System.out.println("總和為: " + total);
? }
}
以上實例輸出結(jié)果為:
總和為: 11367.373
下面的圖片描繪了數(shù)組 myList塞关。這里 myList 數(shù)組里有 10 個 double 元素抬探,它的下標(biāo)從 0 到 9。
處理數(shù)組
數(shù)組的元素類型和數(shù)組的大小都是確定的帆赢,所以當(dāng)處理數(shù)組元素時候驶睦,我們通常使用基本循環(huán)或者 For-Each 循環(huán)。
示例
該實例完整地展示了如何創(chuàng)建匿醒、初始化和操縱數(shù)組:
TestArray.java 文件代碼:
public class TestArray {
? public static void main(String[] args) {
? ? ? double[] myList = {1.9, 2.9, 3.4, 3.5};
? ? ? // 打印所有數(shù)組元素
? ? ? for (int i = 0; i < myList.length; i++) {
? ? ? ? System.out.println(myList[i] + " ");
? ? ? }
? ? ? // 計算所有元素的總和
? ? ? double total = 0;
? ? ? for (int i = 0; i < myList.length; i++) {
? ? ? ? total += myList[i];
? ? ? }
? ? ? System.out.println("Total is " + total);
? ? ? // 查找最大元素
? ? ? double max = myList[0];
? ? ? for (int i = 1; i < myList.length; i++) {
? ? ? ? if (myList[i] > max) max = myList[i];
? ? ? }
? ? ? System.out.println("Max is " + max);
? }
}
以上實例編譯運行結(jié)果如下:
1.9
2.9
3.4
3.5
Total is 11.7
Max is 3.5
For-Each 循環(huán)
JDK 1.5 引進了一種新的循環(huán)類型场航,被稱為 For-Each 循環(huán)或者加強型循環(huán),它能在不使用下標(biāo)的情況下遍歷數(shù)組廉羔。
語法格式如下:
for(type element: array)
{
? ? System.out.println(element);
}
實例
該實例用來顯示數(shù)組 myList 中的所有元素:
TestArray.java 文件代碼:
public class TestArray {
? public static void main(String[] args) {
? ? ? double[] myList = {1.9, 2.9, 3.4, 3.5};
? ? ? // 打印所有數(shù)組元素
? ? ? for (double element: myList) {
? ? ? ? System.out.println(element);
? ? ? }
? }
}
以上實例編譯運行結(jié)果如下:
1.9
2.9
3.4
3.5
數(shù)組作為函數(shù)的參數(shù)
數(shù)組可以作為參數(shù)傳遞給方法溉痢。
例如僻造,下面的例子就是一個打印 int 數(shù)組中元素的方法:
public static void printArray(int[] array) {
? for (int i = 0; i < array.length; i++) {
? ? System.out.print(array[i] + " ");
? }
}
下面例子調(diào)用 printArray 方法打印出 3,1孩饼,2髓削,6,4 和 2:
printArray(new int[]{3, 1, 2, 6, 4, 2});