Reverse a int array in java
本问题已经有最佳答案,请猛点这里访问。
我编写了以下代码来反转一个int数组,但是,我看不到正确的结果。有什么提示吗?谢谢!
结果是
1 | [I@15db9742[I@15db9742[I@15db9742[I@15db9742[I@15db9742[I@15db9742[I@15db9742[I@ |
这似乎很奇怪。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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); } } |
您是
使用如下:
1 |
您可以执行类似于打印数组的操作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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| |