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