A recursive function that finds a minimum element in an array.

public class RecursiveMin {
    public static void main (String [] args) {
	int [] a = {4, 6, 3, 7, 2, 8};
	ArrayObj ao = new ArrayObj(a);
	System.out.println(ao.min());
    }
}

class ArrayObj {
    private int [] arr;

    public ArrayObj(int [] a) {
	// creating a local copy of the array
	arr = new int[a.length];
	for (int i = 0; i < a.length; ++i) {
	    arr[i] = a[i]; 
	}
    }

    public int min() {
	return minHelper(0);
    }

    private int minHelper (int index) {
	if (index == arr.length - 1) return arr[index];
	else {
	    int minTheRest = minHelper(index + 1);
	    if (arr[index] < minTheRest) 
		return arr[index];
	    else return minTheRest;
	}
    }
}

This is an example from CSci 1211 course.