如何使我的数组 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
}
我需要做的是在方法之前的注释中。 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
}