pequena dúvida Java

Beware

What is folding?
Boas, pessoal, tenho um dúvida que provavelmente deve ser muito simples para vocês, mas que me está a partir um pouco a cabeça.

Será que alguém me consegue explicar de forma sucinta, o que significa, isto é, o que faz/qual é a sua função,

Código:
for(File fileDir: files)

por exemplo, uma pequena implementação:

Código:
 static void lsDir(File fin, String fout)
  {
    assert fin != null;
    
    File[] files = fin.listFiles();
    for(File fileDir: files){
      if(fileDir.isDirectory())
        lsDir(fileDir, fout);
          else if(fileDir.getName().equals(fout))
            out.println(fileDir.getAbsolutePath());}
        
  }
  }

obrigado desde já.;)
 
Para cada objecto fileDir do tipo File, presente no array files...
O fileDir é só uma forma de referenciar cada objecto do array através de um nome.
 
Para cada objecto fileDir do tipo File, presente no array files...
O fileDir é só uma forma de referenciar cada objecto do array através de um nome.

Obrigado, apenas uma última questão. Seria possivel transformá-lo num "for" ou "while" sem grandes modificações?

Obrigado pela resposta rápida.
 
Não era preciso mudar muita coisa:
Código:
File fileDir = null;
int i;
for (i=0;i<files.length;i++) {
    fileDir = files[i];
     ...
E o resto era igual.
 
Mas aquilo é um for

Explicitamente falando é um for, mas na gíria até se pode chamar de "for each". Isto porque existem linguagens (o Java não é o caso, até porque este tipo de for é recente no Java) onde este for é explicitamente chamado de "for each".

O nome ajuda a perceber a noção do que é na prática:

for(File fileDir: files){

"for each fileDir in files"

i.e. "para cada fileDir, do tipo File, que existe na colecção files"
 
Em parte veio acabar com os belos dos iteradores que tanto me irritam, o prob é que a maioria das empresas ainda usa o 1.4.
De qualquer das formas na minha opinião deviam ter diferenciado e como acontece noutras linguagens deveria ser mesmo foreach
 
Back
Topo