Piu' o meno deve fare le cose scritte nei commenti. Ti torna?
codice:
import java.util.*;

public class Ordinamento {
   public static void Ordinamento1(String[]I1,String[]I2) {
      int dimensioni = I1*I2;
      //Creo un array temporaneo tuoArray di tipo Msc[dimensioni]
      int indice = 0;
      for(i che va da 0 a I1.length) {
         for(j che va da 0 a I2.length) {
            Msc tmpObject = new Msc(I1[i], I2[j]);
            //Inserisci l'oggetto nell'array che hai creato all'inizio
            //Incrementa l'indice
         }
      }
      Arrays.sort(tuoArray);
      String [] arrayI1= new String [I1.length];
      String [] arrayI2= new String [I2.length];
      for(i che va da 0 a tuoArray.length) {
         //Prendi l'oggetto Msc 
         //attraverso i metodi get ottieni le due stringhe
         //controlli che non siano gia' presenti
         //Se non presenti inserisci
      }
      //Eccetra eccetra
   }
}
P.s. C'era un mini errore nel compareTo() che ti avevo postato
codice:
    public int compareTo(Object obj){
        Msc oggetto = (Msc)obj;
        return lunghezza.compareTo(oggetto.getLunghezza());
    }