数组复习
1、为什么要有数组?
为了存储同种数据类型的多个值。
2、什么是数组初始化?
为数组开辟连续空间,并为每个数组元素赋值。
分为:
— 静态初始化:给予初始值:
int[] arr = new int[]{1,2,3,4,5};
int[] arr = {1,2,3,4,5};
— 动态初始化:只指定长度:
int[] arr = new int[5];
3、栈、堆
栈:存局部变量
堆:存new出来的 数组 或 对象
4、一维数组遍历
public static void print(int[] arr) {
for (int i = 0;i < arr.length ;i++ ) {
System.out.print(arr[i] + " ");
}
}
5、一维数组最大(小)值
public static int getMax(int[] arr) {
int max = arr[0];
for (int i = 1;i < arr.length ;i++ ) { //从数组的第二个元素开始遍历
if (max < arr[i]) {
max = arr[i]; //max记录住较大的
}
}
return max;
}
6、一维数组元素反转(元素对调)
public static void reverseArray(int[] arr) {
for (int i = 0;i < arr.length / 2 ; i++) {
//arr[0]和arr[arr.length-1-0]交换
//arr[1]和arr[arr.length-1-1]交换
//arr[2]和arr[arr.lentth-1-2]
//...
int temp = arr[i];
arr[i] = arr[arr.length-1-i];
arr[arr.length-1-i] = temp;
}
}
7、二维数组的遍历
int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};
for (int i = 0;i < arr.length ;i++ ) { //获取到每个二维数组中的一维数组
for (int j = 0;j < arr[i].length ;j++ ) {//获取每个一维数组中的元素
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
8、二维数组求和
int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};
int sum = 0;
for (int i = 0;i < arr.length ;i++ ) { //获取每一个一维数组
for (int j = 0;j < arr[i].length ;j++ ) {//获取每一个一维数组中的元素
sum = sum + arr[i][j];
}
}
System.out.println(sum);
9、java 参数传递
*基本数据类型,传递完值不变(方法用完值不变)*
*引用数据类型,传递完值改变(方法用完值改变)*
java中到底是 传值 还是 传地址 ?
传值:因为地址也是一种值。