Supponendo di avere un oggetto Codice (non so, immagino sia un codice quella stringa) che rappresenta la stringa della posizione 0 nella matrice, è sufficiente farle implementare Comparable per ottenere l'ordinamento che ti serve (e usare, quindi, anche un TreeMap o un TreeSet, come suggerito da Andrea):

codice:
public class Codice implements Comparable<Codice> {
   private String strCodice;   // Conterrà, ad esempio "100/20/ED"

   public Codice(String strCodice) {
      this.strCodice;
   }

   ...   // Getter e Setter

   // Ricava il valore numerico della prima parte della stringa
   private int valoreNumerico(String str) {
      int pos = str.indexOf('/');
      String primaParte = str.substring(0, pos);
      return Integer.parseInt( primaParte );
   }

   // Ricava la seconda parte della stringa (dopo il primo '/')
   private String secondaParte(String str) {
      return str.substring( str.indexOf('/') );
   }

   @Override
   public int compareTo(Codice c) {
      int val1 = valoreNumerico( strCodice );
      int val2 = valoreNumerico( c.strCodice );
      int ret = val1 - val2;
      if (ret == 0) {
         ret = secondaParte( strCodice ).compareTo( secondaParte(c.strCodice) );
      }
      return ret;
   }
}
Il procedimento è semplice: date 2 stringhe contenenti ciascuna un codice, confronto il valore numerico della prima parte di ciascuna di esse. Se sono diverse, restituisco la differenza fra le tue, se sono uguali, restituisco il confronto fra le due parti di stringa rimanenti.

Oggetti di tipo Codice, a questo punto, possono essere ordinate facilmente mediante l'uso di Arrays.sort() o Collections.sort() e possono essere usate all'interno di collezioni pre-ordinate come TreeSet o TreeMap.


Ciao.