0
点赞
收藏
分享

微信扫一扫

Java之数组的反转


数组反转

  • 要求:把数组的元素内容反转。
    ArrayReverse.java
arr {11,22,33,44,55,66} {66, 55,44,33,22,11}

方式 1:​通过找规律反转


  • 【思路分析】
  • 规律
    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");//66,55,44,33,22,11
}

方式 2:使用逆序赋值方式

ArrayReverse02.java

  • 思路
    1. 先创建一个新的数组 ​​​arr2​​​ ,大小 ​​arr.length​​​ 2. 逆序遍历 ​​arr​​ ,将 每个元素拷贝到 ​​arr2​​的元素中(顺序拷贝)
    3. 建议增加一个循环变量 ​​j -> 0 -> 5​
int[] 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");
}

Java之数组的反转_数组



举报

相关推荐

0 条评论