¿Cómo puedo dividir un ArrayList en varias listas?

Vea la siguiente 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);

Entonces tenemos:

integerList.size(); // outputs 7 elements

Necesito mostrar unGráfico de Google como sigue:

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 generar sus valores, acabo de llamar.

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

Sucedesoporta hasta 1000 píxeles de ancho. Entonces, si tengo muchos valores, necesito dividir mi ArrayList en otras ArrayLists para generar otros 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);

¿Qué ayudante debo usar para conseguir mi objetivo?

Respuestas a la pregunta(3)

Su respuesta a la pregunta