Se ho capito bene supponendo che l'array delle dimensioni sia {600,600,500,210,100,90,80} tu vuoi uraggiungere una situazione del genere:
600
600
500
210 100 90 80
Se è così, io ho ragionato in questo modo. Innanzitutto utlizzo la classe Vector che ti consente di lavorare con "array" a dimensioni variabili. Ho un Vector (chiamato cd) che contiene come elementi a sua volta dei Vector. Questi vector interni contengono le dimensioni che vanno a comporre un singolo cd.
Forse un pò di codice è più chiaro... 
codice:
import java.util.Vector;
public class EsercizioDimensioni {
static Vector cd = new Vector();
static int[] dimensioni = {600,600,500,210,100,90,80};
static final int DIM_MAX = 700;
public static void main(String[] args){
for (int i=0;i<dimensioni.length;){
int dimensioneTotale = 0;
Vector array_cd = new Vector();
while(dimensioneTotale+dimensioni[i]<=DIM_MAX){
array_cd.add(dimensioni[i]);
dimensioneTotale+=dimensioni[i];
i++;
if(i==dimensioni.length){
break;
}
}
cd.add(array_cd);
}
for(int i=0;i<cd.size();i++){
Vector cdTemp = (Vector)cd.get(i);
for(int j=0;j<cdTemp.size();j++){
System.out.print(cdTemp.get(j)+" ");
}
System.out.println();
}
}
}
Spero di aver capito cosa cercavi... per chiarimenti sono qui