Java Basics Part 14/20 - Arrays
目錄
數組是一種數據結構,大小固定,存儲的是一系列相同類型的元素。可以把數組理解成是相同類型的元素的集合。
聲明數組
dataType[] arrayRefVar; // 推薦形式
or
dataType arrayRefVar[]; // 也可以但是不推薦
創建數組
可以使用 new 關鍵字:
arrayRefVar = new dataType[arraySize];
上面這句話做了兩件事:
- 使用 dataType[arraySize] 創建了一個數組
- 把數組的引用賦給了 arrayRefVar 變量
你可以把聲明和賦值放在一起:
dataType[] arrayRefVar = new dataType[arraySize];
也可以這樣:
dataType[] arrayRefVar = {value0, value1, ..., valuek};
操作數組
一般情況下,使用循環來操作數組。
舉例:
public class TestArray {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
// Print all the array elements
for (int i = 0; i < myList.length; i++) {
System.out.println(myList[i] + " ");
}
// Summing all elements
double total = 0;
for (int i = 0; i < myList.length; i++) {
total += myList[i];
}
System.out.println("Total is " + total);
// Finding the largest element
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);
}
}
// output
1.9
2.9
3.4
3.5
Total is 11.7
Max is 3.5
foreach 循環
JDK 1.5 引入了 foreach 增強型 for 循環,無須數組下標即可遍歷數組。
舉例:
public class TestArray {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
// Print all the array elements
for (double element: myList) {
System.out.println(element);
}
}
}
// output
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(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;
}
Arrays 類
java.util.Arrays 類包含了很多的靜態方法,這些方法可以用來對數組進行 排序,搜索,比較,以及填充元素。
SN | Methods with Description |
---|---|
1 | public static int binarySearch(Object[] a, Object key) |
2 | public static boolean equals(long[] a, long[] a2) |
3 | public static void fill(int[] a, int val) |
4 | public static void sort(Object[] a) |