学习内容:
- 一、数组作为方法参数
- 二、数组作为返回值
- 三、一个编程练习
一、数组作为方法参数
在定义一个方法时,我们要用到参数,除了基本数据类型之外,那么数组可以作为方法的参数吗?答案是可以的。此时当我们调用方法的时候,向方法的小括号进行传参,传递进去的其实是数组的地址值。
代码举例说明:
public class Demo01ArrayParam {
public static void main(String[] args) {
int[] array = {10, 20, 30, 40, 50};
System.out.println(array);// 地址值
printArray(array); //传递进去的就是array当中保存的地址值
System.out.println("---------AAA----------");
printArray(array);
System.out.println("---------BBB----------");
printArray(array);
}
/*
三要素
返回值类型:只是进行打印而已,不需要进行计算,也没有结果,用void
方法名称:printArray
参数列表:必须给我数组,我才能打印其中的元素。int[] array
*/
public static void printArray(int[] array) {
System.out.println("printArray方法收到的参数是:");
System.out.println(array); //地址值
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
}
二、数组作为返回值
我们知道,一个方法可以有多个参数,但却不能有多个返回值,那么如果我们希望一个方法中产生了多个结果数据进行返回,该怎么办呢?此时我们只需要利用一个数组来作为方法的返回值类型,然后把希望返回的值放入数组当中即可,此时返回值返回的也是数组的内存地址。
任何的数据类型都能作为方法的参数类型或者返回值类型。
代码举例说明:
public class Demo02ArrayReturn {
public static void main(String[] args) {
int[] result = calculate(10, 20, 30);
System.out.println("main方法接收到的返回值数组是:");
System.out.println(result);
System.out.println("总和" + result[0]);
System.out.println("平均数" + result[1]);
}
public static int[] calculate (int a, int b, int c) {
int sum = a + b + c; //总和
int avg = sum / 3; //平均数
//两个结果都希望进行返回
//需要一个数组,也就是一个塑料兜,数组可以保存多个结果
/*int[] array = new int[2];
array[0] = sum; //总和
array[1] = avg; //平均数
return array;*/
int[] array = {sum ,avg};
System.out.println("calculate方法内部数组是:");
System.out.println(array); //地址值
return array;
}
}
三、一个编程练习
题目:对一个数组进行反转,并输出反转后的数组。
思路:让处于对称位置上的元素进行换位。
代码说明:
public class Demo07ArrayReverse {
public static void main(String[] args) {
int[] array = { 10, 20, 30, 40, 50};
//遍历打印数组本来的样子
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
System.out.println("-----------------------");
/*
初始化语句:int min = 0,max = array.length - 1
条件判断:min < max
步进表达式:min++, max--
*/
for (int min = 0, max = array.length - 1;min < max; min++, max--) {
int temp = array[min];
array[min] = array[max];
array[max] = temp;
}
//再次打印遍历输出数组后来的样子
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
}