数组元素反转与数组作为方法参数_传递地址
数组反转
数组的反转: 数组中的元素颠倒顺序,例如原始数组为1,2,3,4,5,反转后的数组为5,4,3,2,1
实现思想:数组最远端的元素互换位置。
实现反转,就需要将数组最远端元素位置交换
定义两个变量,保存数组的最小索引和最大索引
两个索引上的元素交换位置
最小索引++,最大索引--,再次交换位置
最小索引超过了最大索引,数组反转操作结束
public static void main(String[] args) { int[] arr = { 1, 2, 3, 4, 5 }; /*循环中定义变量min=0最小索引 max=arr.length‐1最大索引 min++,max‐‐ */ for (int min = 0, max = arr.length ‐ 1; min <= max; min++, max‐‐) { //利用第三方变量完成数组中的元素交换 int temp = arr[min]; arr[min] = arr[max]; arr[max] = temp; } // 反转后,遍历数组 for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } }
/* 数组元素的反转 本来的样子:【1,2,3,4】 之后的样子:【4,3,2,1】 要求不能使用新数组,就用原来的唯一一个数组 */ public class day05 { 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]); } } }
数组作为方法参数和返回值
以前的方法中我们学习了方法的参数和返回值,但是使用的都是基本数据类型。那么作为引用类型的数组能否作为
方法的参数进行传递呢,当然是可以的。
数组作为方法参数传递,传递的参数是数组内存的地址。
public class day06 { public static void main(String[] args) { int[] arr ={1,3,5,7,9}; printArray(arr); } public static void printArray(int[] arr){ for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } }
/* 三要素 返回值类型:只是进行打印而已,不需要进行计算,也没有结果, 方法名称:printArray 参数列表:必须给我数组,我才能打印其中的元素。int[ ] array 调用方法的时候,向方法的小括号进行转参,传递进去的其实是数组的地址值。 */ public class day07 { public static void main(String[] args) { int[] array={10,20,30,40,50}; System.out.println(array); printArray(array); System.out.println("****aaa*****"); printArray(array); System.out.println("****bbb*****"); printArray(array); } public static void printArray(int[] array){ for (int i = 0; i < array.length; i++) { System.out.println(array[i]); } } }