Você não pode fazer um cast de ArrayList para String[].
E
entanglement
Dando um exemplo.
packageguj;importjava.text.Collator;importjava.util.ArrayList;importjava.util.Collections;importjava.util.Comparator;importjava.util.List;importjava.util.Locale;publicclassExemploArrayListDeArrayList{staticclassComparatorListStringimplementsComparator<List<String>>{publicComparatorListString(intcolumn){this.column=column;}@Overridepublicintcompare(List<String>o1,List<String>o2){returncollator.compare(o1.get(column),o2.get(column));}privateintcolumn;privateCollatorcollator=Collator.getInstance(newLocale("pt","BR"));}publicstaticvoidprintMatriz(Stringcabecalho,List<List<String>>matriz){System.out.println(cabecalho);for(List<String>linha:matriz){for(Stringelemento:linha){System.out.print(elemento+", ");}System.out.println();}}publicstaticvoidordenarMatriz(List<List<String>>matriz,intcoluna){Collections.sort(matriz,newComparatorListString(coluna));}publicstaticvoidmain(String[]args){// Este é o jeito correto de declarar uma variável que irá conter// um ArrayList de ArrayList. List<List<String>>matriz=newArrayList<List<String>>();String[][]exemplo={{"domingo","segunda","terça","quarta","quinta","sexta","sábado"},{"Linggo","Lunes","Martes","Miyerkules","Huwebes","Biyernes","Sabado"},{"dimanĉo","lundo","mardo","merkredo","ĵaŭdo","vendredo","sabato"},{"Snein","Moandei","Tiisdei","Woansdei","Tongersdei","Freed","Saterdei"},};// Preenchendo nosso arraylist de arraylist...for(String[]linha:exemplo){List<String>alLinha=newArrayList<String>();for(Stringelemento:linha){alLinha.add(elemento);}matriz.add(alLinha);}// Imprimindo a matriz antes da ordenaçãoprintMatriz("---- Matriz original ----",matriz);// Agora fazendo a ordenação pela coluna 2 (terceira coluna)ordenarMatriz(matriz,2);printMatriz("---- Matriz ordenada pela terceira coluna ----",matriz);// Agora fazendo a ordenação pela coluna 6 (última coluna)ordenarMatriz(matriz,6);printMatriz("---- Matriz ordenada pela última coluna ----",matriz);}}