Hola!, yo sé que se pueden recorrer los arreglos bidimensionales cuadrados de varias formas, pero conozco únicamente:
for(int i=0;i<array.length;i++){
for(int j=0;j<array[0].length;j++){
System.out.println(arreglo[j]);
}
}
Esto lo recorre por columnas o por filas, dependiendo del orden del i y el j, pero no se qué otras formas existen para recorrer los arreglos.