我有一个分配给创建在其中创建大小10的阵列的一类创建一个相反的顺序排列,称为source
,和在0-10范围内的在其分配的随机整数到的所有索引,然后调用创建以相反的顺序一个新的阵列的方法。我想下面的代码:从给定阵列
public class Exercise7_4 {
// reverse array method
public static int[] reverseArray(int[] arr) {
int[] reverse = new int[arr.length];
for (int i = 0; i < reverse.length - 1; i++) {
reverse[i] = arr[arr.length - 1 - i];
}
return reverse;
}
// print array in ascending order
public static void printArray(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
System.out.printf("%d\t", arr[i]);
}
System.out.println();
}
public static void main(String[] args) {
int[] source = new int[10];
for (int i = 0; i < source.length - 1; i++) {
source[i] = (int) (Math.random() * 10 + 1);
}
int[] reverse = reverseArray(source);
printArray(source);
printArray(reverse);
}
}
的问题是,输出我得到这个样子的:
7 1 3 7 10 9 6 2 6
0 6 2 6 9 10 7 3 1
意思,reverseArray
方法不正确的reverse[0]
出于某种原因。
我想知道这是为什么发生,我怎么能解决这个问题。 在此先感谢!
在for循环从'0'迭代,以'编曲。长度-2“和”反向长度-2“。改变你的循环类似于'for(int i = 0; i
感谢@JonnyHenly的帮助! –