遍历数组
如果只需要顺序遍历整个数组,并不进行任何修改操作,使用foreach语句。否则使用for循环
不过对于对象数组,可以使用foreach时对各个对象进行修改。
例一:foreach
//find all even numbers
int count = 0;
for (int num : arr) {
if (num % 2 == 0) {
count++;
}
}
例二:for循环
//change all elements to 0
for (int i = 0; i < arr.length; i++) {
arr[i] = 0;
}
数组作为参数
由于数组属于对象。把数组作为参数直接传入其对象引用。因此,在方法内对数组的操作在方法退出后依然会保存
例一:遍历数组,不操作
public static int findMin (int[] arr) {
int min = arr[0];
int minIndex = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] < min) {
min = arr[i];
minIndex = i;
}
}
return minIndex;
}
例二:对数组进行操作
//书上给的例子太傻,这是试着写一下快速排序
public static void quickSort (int[] arr, int left, int right) {
if (right - left < 2) {
return;
} else {
int pivot = arr[left];
int i = left;
int j = right;
while (i <= j) {
while (arr[j] >= pivot && i < j) {
j--;
}
while (arr[i] <= pivot && i < j) {
i++;
}
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
arr[left] = arr[i];
arr[i] = pivot;
quickSort(arr, left, i - 1);
quickSort(arr, i, right);
}