Java 語言中提供的數組是用來存儲固定大小的同類型元素。java
首先必須聲明數組變量,才能在程序中使用數組。程序員
dataType[] arrayRefVar; // 首選的方法 dataType arrayRefVar[]; // 效果相同,但不是首選方法
建議使用 dataType[] arrayRefVar 的聲明風格聲明數組變量。 dataType arrayRefVar[] 風格是來自 C/C++ 語言 ,在Java中採用是爲了讓 C/C++ 程序員可以快速理解java語言。
例子:面試
double[] myList; // 首選的方法 double myList[]; // 效果相同,但不是首選方法
Java語言使用new操做符來建立數組數組
arrayRefVar = new dataType[arraySize];
上面的語法語句作了兩件事:ide
使用 dataType[arraySize] 建立了一個數組。函數
把新建立的數組的引用賦值給變量 arrayRefVar。3d
數組變量的聲明,和建立數組能夠用一條語句完成,以下所示:code
dataType[] arrayRefVar = new dataType[arraySize];
另外,你還可使用以下的方式建立數組。blog
dataType[] arrayRefVar = {value0, value1, ..., valuek};
數組的元素是經過索引訪問的。數組索引從 0 開始,因此索引值從 0 到 arrayRefVar.length-1。
下面的語句首先聲明瞭一個數組變量 myList,接着建立了一個包含 10 個 double 類型元素的數組,而且把它的引用賦值給 myList 變量。排序
public class TestArray { public static void main(String[] args) { // 數組大小 int size = 10; // 定義數組 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); } }
總和爲: 11367.373
下面的圖片描繪了數組 myList。這裏 myList 數組裏有 10 個 double 元素,它的下標從 0 到 9。
數組的元素類型和數組的大小都是肯定的,因此當處理數組元素時候,咱們一般使用基本循環或者 For-Each 循環。該實例完整地展現瞭如何建立、初始化和操縱數組:
public class TestArray { public static void main(String[] args) { double[] myList = {1.9, 2.9, 3.4, 3.5}; // 打印全部數組元素 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); } }
1.9 2.9 3.4 3.5 Total is 11.7 Max is 3.5
JDK 1.5 引進了一種新的循環類型,被稱爲 For-Each 循環或者增強型循環,它能在不使用下標的狀況下遍歷數組。
for(type element: array) { System.out.println(element); }
例子:
public class TestArray { public static void main(String[] args) { double[] myList = {1.9, 2.9, 3.4, 3.5}; // 打印全部數組元素 for (double element: myList) { System.out.println(element); } } }
結果以下:
1.9 2.9 3.4 3.5
數組能夠做爲參數傳遞給方法。例子以下:
public static void printArray(int[] array) { for (int i = 0; i < array.length; i++) { System.out.print(array[i] + " "); } }
下面例子調用 printArray 方法打印出 3,1,2,6,4 和 2:
printArray(new int[]{3, 1, 2, 6, 4, 2});
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; }
多維數組能夠當作是數組的數組,好比二維數組就是一個特殊的一維數組,其每個元素都是一個一維數組,例如:String str[][] = new String[3][4];
1.多維數組的動態初始化(以二維數組爲例)
直接爲每一維分配空間
type[][] typeName = new type[typeLength1][typeLength2];
type 能夠爲基本數據類型和複合數據類型,arraylength1 和 arraylength2 必須爲正整數,arraylength1 爲行數,arraylength2 爲列數。
2.從最高維開始,分別爲每一維分配空間,例如:
String s[][] = new String[2][]; s[0] = new String[2]; s[1] = new String[3]; s[0][0] = new String("Good"); s[0][1] = new String("Luck"); s[1][0] = new String("to"); s[1][1] = new String("you"); s[1][2] = new String("!");
s[0]=new String[2] 和 s[1]=new String[3] 是爲最高維分配引用空間,也就是爲最高維限制其能保存數據的最長的長度,而後再爲其每一個數組元素單獨分配空間 s0=new String(「Good」) 等操做。
對二維數組中的每一個元素,引用方式爲 arrayName[index1][index2]
java.util.Arrays 類能方便地操做數組,它提供的全部方法都是靜態的。
具備如下功能:
給數組賦值:經過 fill 方法。
對數組排序:經過 sort 方法,按升序。
比較數組:經過 equals 方法比較數組中元素值是否相等。
查找數組元素:經過 binarySearch 方法能對排序好的數組進行二分查找法操做。