Como posso dividir uma ArrayList em várias listas?

Veja a seguinte ArrayList:

List<Integer> values = new ArrayList<Integer>();
values.add(0);
values.add(1);
values.add(2);
values.add(3);
values.add(4);
values.add(5);
values.add(6);

Então nós temos:

integerList.size(); // outputs 7 elements

Eu preciso mostrar umCarta do Google do seguinte modo:

http://chart.apis.google.com/chart?chs=300x200&chd=t:60,-1,80,60,70,35&cht=bvg&chbh=20,4,20&chco=4C5F2B,BED730,323C19&chxt=y&chxr=0 0,500

Para gerar seus valores, eu apenas chamo

StringUtils.join(values, ","); // outputs 0,1,2,3,4,5,6

Acontecesuporta até Largura de 1000 pixels. Então, se eu tiver muitos valores, preciso dividir meu ArrayList em outros ArrayLists para gerar outros gráficos. Algo como:

Integer targetSize = 3; // And suppose each target ArrayList has size equal to 3

// ANSWER GOES HERE
List<List<Integer>> output = SomeHelper.split(values, targetSize);

Que ajudante devo usar para atingir meu objetivo?

questionAnswers(3)

yourAnswerToTheQuestion