This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Its depends upon the scenario, the requirements, and your expertise,
Here are some points
Recursion is, many time, easy to read and understand than loops, loop may some times gets messy with logic of multiple return statement.
Recursion increased the work for JVM, by maintaining the stacks for each function call, exit point etc, where as loop can be straight forward, not much overload to JVM
Finally I suggest if there are some less iterations to be done , then use Recursion, but if iterations are increased it may gets results in to StackOverflowException (very rare), In such case loops are friendly..
If you can use a loop you should use a loop, because of the stack overhead. In a loop, all local variables will be reused instead of having separate variables per method invocation. Sometimes it makes sense to use a recursive call though, especially when using tree-type structures (like a file system), or if an algorithm is clearly designed to be called recursively (e.g. the most basic version of Fibonacci: f(n) = f(n - 1) + f(n - 2)).