如何使我的数组 return 倒序排列?

How can I make my array return in reversed order?

我需要做的是在方法之前的注释中。 A 包含用户输入的 10 元素长数组:

//Reverses the contents of the array. The array remains unchanged
    //It prints the reversed array to the screen
    static void reverseArray(int [] A)
    {
        int[] tempArray = new int[10];

      for(int i = A.length-1; i >= 0; i--)
      {
        //Supposed to copy what's in reversed array A to tempArray
        tempArray[i] = A[i];
      }
        printArray(tempArray); //Prints the updated array to the screen
    }

我想让它做的是从 A 的最后一个元素倒数到第一个,然后将其复制到 tempArray。但现在它只打印用户输入的数组。我知道我需要 2 个整数来跟踪增加和减少的内容,但我不知道如何实现它们。

首先,不要硬编码tempArray的长度。使用A的长度:

int[] tempArray = new int[A.length];

其次,将A的每个元素复制到tempArray的逆索引:

for(int i = A.length-1; i >= 0; i--) {
  tempArray[A.length-1-i] = A[i];
}

这是我的方法

    static void reverseArray(int [] A){
        int[] tempArray = new int[A.length];
        for(int i = 0; i < A.length; i++){
             tempArray[i] = A[A.length - i - 1];
        }
        printArray(tempArray); //Prints the updated array to the screen
    }

    static void printArray(int[] array){
        for(int i = 0; i < array.length; i++){
            System.out.print(array[i] + " ");
        }
    }

所以我看到了 this answer,这真的很有帮助。我也可以按照我最初的计划使用 for 循环,但 while 循环也能很好地工作。前者可能更容易,因为我不需要做更多的变量,但没关系。

static void reverseArray(int [] A)
    {
      int i = A.length - 1;
      int j = 0;
      int[] tempArray = new int[A.length];

      while(i >= 0)
      {
        tempArray[j] = A[i];
        i--;
        j++;
      }
        printArray(tempArray); //Prints the updated array to the screen
    }