我编写了以下代码来反转int数组,但是,我看不出结果是正确的。有什么暗示吗?谢谢!
结果是
[I@15db9742[I@15db9742[I@15db9742[I@15db9742[I@15db9742[I@15db9742[I@15db9742[I@
这似乎很奇怪。
public class reverseArray {
public static void main(String[] args) {
int[] array = {2, 4, 5, 7, 8, 9, 12, 14, 17, 19, 22, 25, 27, 28, 33, 37};
reverse(array, 0, array.length - 1);
}
public static void reverse(int[] data, int low, int high) {
if (low < high) {
int temp = data[low];
data[low] = data[high];
data[high] = temp;
reverse(data, low + 1, high - 1);
}
System.out.print(data);
}
}
答案 0 :(得分:5)
你是System.out.print
正在打印数组Object而不是数组索引值。
使用如下: -
System.out.print(data[low]);
您可以执行类似打印数组的操作: -
public static void main(String[] args) {
int[] array = {2, 4, 5, 7, 8, 9, 12, 14, 17, 19, 22, 25, 27, 28, 33, 37};
reverse(array, 0, array.length - 1);
printArray(array);
}
public static void reverse(int[] data, int low, int high) {
if (low < high) {
int temp = data[low];
data[low] = data[high];
data[high] = temp;
reverse(data, low + 1, high - 1);
}
}
private static void printArray(int [] array){
for(int i:array){
System.out.print(i+"|");
}
System.out.println();
}
Output: 37|33|28|27|25|22|19|17|14|12|9|8|7|5|4|2|