如何反转 int 数组 Java
How to reverse int array Java
我一直在尝试取一个由 100 个随机整数组成的预制数组并将其反转。我没有收到任何错误消息,但生成的数组在重新启动之前只反转了大约一半。这一直在搞乱结果,我似乎无法找出它有什么问题。我是 Java 的新手,所以我觉得这是一个我还没有发现的简单错误,所以我将不胜感激任何帮助或建议。作为参考,这是我创建的方法:
//create a method to reverse the array
public static void makeNewArray(){
System.out.println("\nReversed Array:\n");
//use a for loop to traverse the array
for(int i=numArray.length-1;i>=0;i--){
int temp = numArray[i];
numArray[i] = numArray[numArray.length - i - 1];
numArray[numArray.length - i - 1] = temp;
//print the reversed array
System.out.print("index " + (i+1) + ": "+ numArray[i] + ", ");
}
}
在 for 循环中,您将翻转第一个数字和最后一个数字、第二个数字和倒数第二个数字、第三个数字和倒数第三个数字,依此类推。如果你从头到尾,你将翻转每个数字两次,因为你完全移动通过数组,并翻转两个数字,因此翻转数组中的数字两次。只能遍历数组的一半,例如:
int counter = 0;
for(int i = numArray.length-1; i >= counter; i--){
int temp = numArray[i];
numArray[i] = numArray[numArray.length - i - 1];
numArray[numArray.length - i - 1] = temp;
//print the reversed array
//System.out.print("index " + (i) + ": "+ numArray[i] + ", ");
counter++;
}
//print arr
// must be separate because must iterate the whole array
for(int i = 0; i < numArray.length; ++i){
System.out.print("Index: "+i+": "+numArray[i]+", ");
}
System.out.println(""); // end code with newline
我一直在尝试取一个由 100 个随机整数组成的预制数组并将其反转。我没有收到任何错误消息,但生成的数组在重新启动之前只反转了大约一半。这一直在搞乱结果,我似乎无法找出它有什么问题。我是 Java 的新手,所以我觉得这是一个我还没有发现的简单错误,所以我将不胜感激任何帮助或建议。作为参考,这是我创建的方法:
//create a method to reverse the array
public static void makeNewArray(){
System.out.println("\nReversed Array:\n");
//use a for loop to traverse the array
for(int i=numArray.length-1;i>=0;i--){
int temp = numArray[i];
numArray[i] = numArray[numArray.length - i - 1];
numArray[numArray.length - i - 1] = temp;
//print the reversed array
System.out.print("index " + (i+1) + ": "+ numArray[i] + ", ");
}
}
在 for 循环中,您将翻转第一个数字和最后一个数字、第二个数字和倒数第二个数字、第三个数字和倒数第三个数字,依此类推。如果你从头到尾,你将翻转每个数字两次,因为你完全移动通过数组,并翻转两个数字,因此翻转数组中的数字两次。只能遍历数组的一半,例如:
int counter = 0;
for(int i = numArray.length-1; i >= counter; i--){
int temp = numArray[i];
numArray[i] = numArray[numArray.length - i - 1];
numArray[numArray.length - i - 1] = temp;
//print the reversed array
//System.out.print("index " + (i) + ": "+ numArray[i] + ", ");
counter++;
}
//print arr
// must be separate because must iterate the whole array
for(int i = 0; i < numArray.length; ++i){
System.out.print("Index: "+i+": "+numArray[i]+", ");
}
System.out.println(""); // end code with newline