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");
        }

在这里插入图片描述

posted @ 2021-05-21 16:07  兮动人  阅读(356)  评论(0编辑  收藏  举报