For each no Java 5

Galera estou tentando utilizar aquele for novo do java 5 e tenho algumas dúvidas:
Primeira: Ele funciona somente com coleções ou funciona com array tambem?
Segunda: Como faço caso precise pegar o indice que ele deixa implicito?
Estou tentando utiliza-lo com um array da forma descrita abaixo, está correto?

//Receber um array de códigos de cliente do request
String[] arrayDeClientes = request.getParameterValues(“array1”);

for(String codigo:arrayDeClientes){
Cliente cliente = new Cliente(); //Crio um objeto do tipo cliente

//Neste ponto quero setar um atributo do cliente com o valor do array
cliente.setId(Long.parseLong(codigo.???);
}

Preciso capturar o valor de cada elemento do array, mas não sei se este tipo de for funciona com array.
Agradeço desde já
Jandiro

O “valor do array” eh a tua variavel “codigo” mesmo.

Rafael

Valeu Rafael, voce acertou na mosca!
Obrigado

Jandiro

Eis aqui um lugar onde o Java diverge do Javascript.
No Java,

int[] codigos = {8080, 443, 137, 6924};
for (int codigo: codigos) {
    System .out .println (codigo);
}

imprime cada código.

No Javascript, o var não é o valor do código e sim um índice.

var codigos = new Array (8080, 443, 137, 6924};
for (var ndx in codigos) {
     alert (codigos[ndx]);
}

Prefiro o jeito Java, e isso já me causou problemas em Javascript (usei faz muito tempo, e quando fui fazer manutenção, achei que funcionava igual ao Java).