如何反转int数组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


最新更新