public class Reverser { /** * Converts an int array into a string for easy printing. * * @param arr The array to be printed. */ public static String arrayToString(int[] arr) { String s = "[ "; for (int i = 0; i < arr.length; i++) { s += arr[i]; s += " "; } s += "]"; return s; } /** * Reverses the order of elements in an int array, * in place. * * @param arr The array to be reversed. */ public static void reverse(int[] arr) { // swap elements at i and j; // i is an element on the left, // j is an element on the right. for (int i = 0; i < arr.length / 2; i++) { int j = arr.length - i - 1; int tmp = arr[i]; // uncomment to observe swaps // System.out.println("Swap i = " + i + " and j = " + j); arr[i] = arr[j]; arr[j] = tmp; } } public static void main(String[] args) { // an array int[] arr = { 1, 2, 3, 4 }; // print it System.out.println(arrayToString(arr)); // reverse it ("in place") reverse(arr); // print it again System.out.println(arrayToString(arr)); } }