聲明數(shù)組變量
首先必須聲明數(shù)組變量,才能在程序中使用數(shù)組剧蚣。下面是聲明數(shù)組變量的語(yǔ)法:
dataType[] arrayRefVar
實(shí)例
double[] myList;
創(chuàng)建數(shù)組
Java語(yǔ)言使用new操作符來(lái)創(chuàng)建數(shù)組,語(yǔ)法如下:
arrayRefVar = new dataType[arraySize];
上面的語(yǔ)法語(yǔ)句做了兩件事:
- 使用new dataType[arraySize]創(chuàng)建了一個(gè)數(shù)組實(shí)例呐能。
- 把新創(chuàng)建的數(shù)組實(shí)例指向了變量arrayRefVar(即字面量指向了地址)
數(shù)組變量的聲明和數(shù)組實(shí)例的創(chuàng)建可以用一條語(yǔ)句完成隶糕,如下所示:
dataType[] arrayRefVar = new dataType[arraySize];
另外,還可以使用如下方式創(chuàng)建數(shù)組:
dataType[] arrayRefVar = {value0, value1, value2, ..., valuek};
數(shù)組的元素是通過(guò)索引訪問(wèn)的倒慧。數(shù)組索引從0開始按摘,所以索引值從0到arrayRefVar.length - 1。
實(shí)例
下面的語(yǔ)句首先聲明了一個(gè)引用(和變量的意思相同)myList纫谅,接著創(chuàng)建了一個(gè)包含10個(gè)double類型元素的數(shù)組實(shí)例炫贤,并且把它賦值給myList引用。
public class TestArray {
public static void main(String[] args) {
// 定義數(shù)組
double[] myList = new double[10];
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;
// 計(jì)算所有元素的總和
double total = 0;
for (int i = 0; i < size; i++) {
total += myList[i];
}
System.out.println("總和為: " + total);
}
}
以上實(shí)例輸出的結(jié)果為:
總和為11367.373
下面的圖片描述了數(shù)組myList付秕。這里的myList數(shù)組里有10個(gè)double元素兰珍,它的下標(biāo)從0到9。
處理數(shù)組
數(shù)組的元素類型和數(shù)組的大小是確定的询吴,所以當(dāng)處理數(shù)組元素的時(shí)候掠河,我們通常使用基本循環(huán)或者foreach循環(huán)。
示例
該實(shí)例完整地展示了如何創(chuàng)建猛计、初始化和操作數(shù)組:
public class TestArray{
public static void main(String[] args){
double[] meList = {1.9,2.9,3.4,3.5};
//打印所有數(shù)組元素
for(int i = 0; i < myList.length; i++){
System.out.println(myList[i] + " ");
}
//計(jì)算所有元素的總和
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 = 0; i < myList.length; i++){
if(myList[i] > max){
max = myList[i];
}
System.out.println("Max is" + max);
}
}
以上的實(shí)例編譯運(yùn)行的結(jié)果如下所示:
1.9
2.9
3.4
3.5
Total is 11.7
Max is 3.5
foreach 循環(huán)
JDK1.5引入了一種新的循環(huán)類型唠摹,被稱為foreach循環(huán),他能在不使用下標(biāo)的情況下遍歷數(shù)組奉瘤。
示例
該示例來(lái)顯示數(shù)組myList中的所有元素:
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);
}
}
}
以上實(shí)例編譯運(yùn)行的結(jié)果如下:
1.9
2.9
3.4
3.5
數(shù)組作為方法的參數(shù)
數(shù)組可以作為參數(shù)傳遞給方法勾拉。例如,下面的例子就是一個(gè)打印int數(shù)組中元素的方法:
public static void printArray(int[] array){
for(int i = 0; i < array.length; i++){
System.out.println(array[i] + "");
}
}
下面的例子調(diào)用printArray方法打印出1盗温,2藕赞,3,4卖局,5找默,6:
printArray(new int[]{1,2,3,4,5,6,});
數(shù)組作為函數(shù)的返回值
public static int[] reverse(int[] list){
int[] result = new int[list.length];
for(int i = 0, j = result.length - 1; i < list.length; i++, j--){
result[j] = list[i];
}
return result;
}
以上示例中result數(shù)組作為方法的返回值。
Arrays類
java.util.Arrays類能方便的操作整個(gè)數(shù)組吼驶,它提供的所有方法都是靜態(tài)的惩激。具有以下功能:
- 給數(shù)組賦值:通過(guò)fill()。
- 對(duì)數(shù)組排序:通過(guò)sort()蟹演,按升序风钻。
- 比較數(shù)組:通過(guò)equals()比較數(shù)組中的元素是否相等。
- 查找數(shù)組元素:通過(guò)binarySearch()能對(duì)排序好的數(shù)組進(jìn)行二分法查找法操作酒请。
- 截取數(shù)組:通過(guò)copyOf()骡技,復(fù)制指定數(shù)組,截取或用0填充。通過(guò)copyOfRange()布朦,將制定數(shù)組指定的范圍復(fù)制到一個(gè)新數(shù)組囤萤。