Recursion with ArrayList of Objects