Necesita ayuda para interpretar una instrucción for en código heredado

Imagine for(File file : files ) en el siguiente código. Nunca he visto esta sintaxis antes. Entiendo por el contexto y el comportamiento que es un bucle for basado en la cantidad de registros... similar a (for x=0;x<length.foo;++x). Más allá de eso, sin embargo, no estoy seguro. ¿Es esta la forma abreviada de un bucle for que aún no he aprendido? ¿Es este un bucle específicamente para objetos? Más importante aún ... ¿cómo lo describo cuando quiero buscar en Google información sobre esa sintaxis en particular?

ACLARACIÓN: una segunda pregunta, también tengo curiosidad de cómo este método de listado recursivo de archivos almacena la lista de nombres de archivos en file. ¿Es esto una matriz? ¿Una colección? o...? Me gustaría saber cómo necesito leer el archivo resultante.

public static void main(String... aArgs) throws FileNotFoundException
{
    File startingDirectory= new File("CGT");
    List<File> files = WorkingFileListing2.getFileListingNoSort(startingDirectory);
    for(File file : files )
    {
       System.out.println(file);  //print filenames
    }
}

preguntado el 03 de mayo de 12 a las 16:05

3 Respuestas

es el llamado bucle "para cada".

También tengo curiosidad de cómo este método almacena la lista de nombres de archivos en file.

no lo hace itera sobre los elementos de files, asignándolos a su vez a file (¡uno a la vez!). Si ejecuta el código, cada iteración del bucle imprimirá un nombre de archivo.

¿Cómo lo describo cuando quiero buscar en Google información sobre esa sintaxis en particular?

Google "java para cada uno".

contestado el 03 de mayo de 12 a las 16:05

Como un tipo mayormente de C #, supongo que nunca llegaría primero a una pregunta de Java ... - Holf

Me parece el equivalente de un 'foreach' en C#. Al buscar en Google 'Java foreach' obtuve esto: Detalle del bucle For-Each de Java

contestado el 03 de mayo de 12 a las 16:05

Esto se llama bucle foreach que se usa solo para objetos cuando no desea eliminar objetos de la matriz.

contestado el 03 de mayo de 12 a las 16:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.