Build an Array of StringBuffer with x elements from a List of n elements
StringBuffer

The first thing that comes to mind is the fact that you're using a StringBuffer instead of a StringBuilder. A StringBuffer is synchronized which means it has the additional overhead that comes with it. Unless you are doing this in a multithreaded environment that affects this piece of code, switching to a StringBuilder will be a good improvement.

ToString

Inside your loop you do b.append(',').toString(). Since you never do anything with the String that it returns, you are essentially needlessly creating a String each time it is hit.

Strongly typed collections

You have the collection accounts defined as List accounts = new ArrayList();: there is no type specified. 

Proper handling would be List&lt;Account&gt; accounts = new ArrayList&lt;&gt;(); so you're working with Person objects instead of general Objects.



This is aside from any remarks on whether or not your code fits your problem description, as @rolfl states. I don't see where you split it in sublists of 3 elements.