Array数组反转
要求arr{11,22,33,44,55,66} ->{66,22,33,44,55,11}
public class ArrayReverse {
public static void main(String[] args) {
//定义数组
int[] arr = {11,22,33,44,55,66};
//老韩思路
//规律
//1.把 arr[0] 和 arr[5] 进行交换 {66,22,33,44,55,11}
//2.把 arr[1] 和 arr[4] 进行交换 {66,55,33,44,22,11}
//3.把 arr[2] 和 arr[3] 进行交换 {66,55,44,33,22,11}
//4. 一共要交换 3次 = arr.length /2
//5. 每次交换式,对应的下标 是 arr[i] 和 arr[arr.length -1 -i]
//代码
int temp = 0;
int len = arr.length;
for(int i = 0;i < len /2;i++){
temp = arr[len - 1 - i]; //保存
arr[len - 1 - i] = arr[i];
arr[i] = temp;
}
System.out.println("===反转后数组===");
for (int i = 0; i < arr.length ; i++){
System.out.print(arr[i] + "\t");
}
}
}
方法二:逆序赋值方式
public class ArrayReverse02 {
public static void main(String[] args) {
//
//定义数组
int[] arr = {11,22,33,44,55,66};
//逆序赋值法
//老韩思路
//1.先创建一个新的数组,arr2,大小 arr.length一样
//2.逆序遍历arr ,然后将每个元素拷贝到 arr2 的元素中
//3.建议增加一个循环变量 j-> 0 -> 5
int[] arr2;
arr2 = new int[arr.length];
//逆序遍历 arr
for (int i = arr.length-1,j=0; i >= 0;i--,j++){
arr2[j] = arr[i];
}
//4.当for循环结束后,arr2就是一个逆序的输出{66,55,44,33,22,11}
//5.让 arr 指向 arr2 数据空间,此时arr原来的数据空间就没有变量引用
//就会被当做垃圾,销毁
arr = arr2;
System.out.println("===arr的元素情况====");
//6.输出arr,看看
for (int i = 0; i < arr.length;i++){
System.out.print(arr[i] + "\t");
}
}
}