反转数组:请签出此代码 我很难理解为什么下面的代码不能反转数组。 我已经复制了阵列 正如您在下面看到的,我使用了for循环,并从0开始计数器,直到数组的长度。我将原始数组的第一个元素设置为与最后一个元素相等。并且,从数组开始的第二个与从数组结束的第二个相等。等等。 但是结果返回了原始数组,而不是反向数组。 我已将整个代码粘贴在这里,以便您可以将其复制到IDE中。请帮我弄清楚。 事先非常感谢。 import java.util.Arrays; import java.util.Scanner; public class Main { private static Scanner input = new Scanner(System.in); public static void main(String[] args) { int[] myArray = normal(5); reverse(myArray); } public static int[] normal(int count){ int [] array = new int[count]; for(int i = 0; i < count; i++){ array[i] = input.nextInt(); } return array; } public static void reverse(int[] array){ int[] reverse = Arrays.copyOf(array, array.length); for(int i = 0; i < array.length; i++){ array[i] = reverse[(array.length - i)-1]; } System.out.println(Arrays.toString(reverse)); } } 导入java.util.array; 导入java.util.Scanner; 公共班机{ 专用静态扫描仪输入=新扫描仪(System.in); 公共静态void main(字符串[]args){ int[]myArray=normal(5); 反向(myArray); } 公共静态整数[]正常(整数计数){ int[]数组=新的int[count]; for(int i=0;i

反转数组:请签出此代码 我很难理解为什么下面的代码不能反转数组。 我已经复制了阵列 正如您在下面看到的,我使用了for循环,并从0开始计数器,直到数组的长度。我将原始数组的第一个元素设置为与最后一个元素相等。并且,从数组开始的第二个与从数组结束的第二个相等。等等。 但是结果返回了原始数组,而不是反向数组。 我已将整个代码粘贴在这里,以便您可以将其复制到IDE中。请帮我弄清楚。 事先非常感谢。 import java.util.Arrays; import java.util.Scanner; public class Main { private static Scanner input = new Scanner(System.in); public static void main(String[] args) { int[] myArray = normal(5); reverse(myArray); } public static int[] normal(int count){ int [] array = new int[count]; for(int i = 0; i < count; i++){ array[i] = input.nextInt(); } return array; } public static void reverse(int[] array){ int[] reverse = Arrays.copyOf(array, array.length); for(int i = 0; i < array.length; i++){ array[i] = reverse[(array.length - i)-1]; } System.out.println(Arrays.toString(reverse)); } } 导入java.util.array; 导入java.util.Scanner; 公共班机{ 专用静态扫描仪输入=新扫描仪(System.in); 公共静态void main(字符串[]args){ int[]myArray=normal(5); 反向(myArray); } 公共静态整数[]正常(整数计数){ int[]数组=新的int[count]; for(int i=0;i,java,arrays,Java,Arrays,这一行是罪魁祸首 System.out.println(Arrays.toString(反向)); 换成 System.out.println(Arrays.toString(array)); 更好的解释结果的方法是使用类似的方法 publicstaticvoidmain(字符串[]args){ int[]myArray=normal(5); System.out.println(“反转前”); System.out.println(Arrays.toString(myArray)); 反向

这一行是罪魁祸首

System.out.println(Arrays.toString(反向));
换成

System.out.println(Arrays.toString(array));
更好的解释结果的方法是使用类似的方法

publicstaticvoidmain(字符串[]args){
int[]myArray=normal(5);
System.out.println(“反转前”);
System.out.println(Arrays.toString(myArray));
反向(myArray);
System.out.println(“反转后”);
System.out.println(Arrays.toString(myArray));
}

并从递归循环中完全删除打印语句。

您正在反向打印-

更换这条线

System.out.println(Arrays.toString(reverse));
用这个

System.out.println(Arrays.toString(array));

您正在打印
反向
数组,它是原始数组的副本。反向数组是
array
。提示:在
reverse(myArray)之后,在
main方法中打印
myArray
您将看到您的代码确实反转了一个数组。只是不是你期望的阵列。@Eran先生,已经给了你答案。哦,天哪!你是对的!我是个新手。很抱歉麻烦你问这么简单的问题。但是我已经在“反向方法”中嵌入了“System.out.println(reverse)”。那么,为什么不自动打印出反转的?@M.Steiner,因为您的代码
reverse(myArray)已将数组还原回原始数组,原因是
System.out.println(Arrays.toString(reverse))
,其中应该是
System.out.println(Arrays.toString(myArray))