Ver Mensaje Individual
  #18 (permalink)  
Antiguo 11/05/2009, 02:48
Avatar de elAntonie
elAntonie
 
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 3 meses
Puntos: 10
Respuesta: Printear en orden alfabetico

Wenas

Código:
public static void listado (File folder)  
{
ArrayList lista = new ArrayList();
lista.add("INBOX");
lista.add("INBOX.Carpeta1");
lista.add("INBOX.Carpeta1.Carpeta11");
lista.add("INBOX.Carpeta1.Carpeta11.Carpeta111");
lista.add("INBOX.Carpeta1.Carpeta21");
lista.add("INBOX.Carpeta2");
lista.add("INBOX.Carpeta2.Carpeta12");
lista.add("INBOX.Carpeta3.Carpeta3.Carpeta31");
lista.add("INBOX.Trash");

String [] tmp = {};
int lengthtmpant = 0;
int lengthtmp = 0;
String textOut = "<carpeta>";
int j=0;
while (j<lista.size())
{
            lengthtmpant = lengthtmp;
            tmp = ((String)lista.get(j)).split("\\.");
            lengthtmp = tmp.length;
            for(int k=1;k<tmp.length;k++)//hacer las respectivas tabulaciones
                textOut += "\t";
	    if (lengthtmpant > 0 && lengthtmp < lengthtmpant)
	    {	
	            while (lengthtmp <= lengthtmpant) //si son distintos es que estamos en otro nodo. eltmpant.length>0 sirve para que no entre la primera vez que pasa por el bucle (j=0)
	            {
	                  textOut += "</sub"+lengthtmpant+">";
	                  lengthtmpant --;
	            }
            }            
            textOut += "<sub"+lengthtmp+">";
            textOut += tmp[lengthtmp-1];//escribir solo el hijo
            textOut += "\n";
            j++;
        }    
        textOut += "</carpeta>";


System.out.println(textOut);
}
Reconoce que no iba tan desencaminado, chato. (Algun while de mas...).
En mi codigo de la clase pepito, la clase que uso para probar cosas asi, inbox lo considera sub1, carpeta1 sub2...
Saludos