public class Array { // copy content of a starting with index i into b public static void copy(int[] a, int i, int[] b) { int n = b.length; for (int j = 0; j < n; j++) b[j] = a[j+i]; } // return subarray a[i..i+n-1] public static int[] subarray(int[] a, int i, int n) { int[] b = new int[n]; copy(a, i, b); return b; } // return subarray of a starting at i public static int[] subarray(int[] a, int i) { return subarray(a, i, a.length-i+1); } }