Salve a tutti...

Vorrei sottoporvi un problema d'ordinamento: ho un arraylist di stringhe e dovrei fare un ordinamento su di esso del tipo:

Fare un check sul 4o carattere della stringa in ingresso (e qui uso il Substring)...
se tale carattere è B spostare la riga in alto
se è I inserirla sotto le righe B
se è C sotto le I
se è P sotto le C

in modo da avere un blocco così:

B
B
B
B
B
I
I
C
C
P
P
P


Come poter fare?
Inoltre...per tener traccia di quanti elementi ha ciascun sottoblocco, avevo pensato ad un ciclo for, che ne dite?