Considere clientes um objeto List que contém um conjunto de registros retornados de uma tabela do banco de dados por meio da execução de uma query SQL em uma aplicação web desenvolvida com Java utilizando o Hibernate. Considere também a existência de uma classe de entidade chamada Cliente que faz o mapeamento objeto-relacional com a tabela cliente do banco de dados. Nessas condições, considere os fragmentos de código abaixo:

Exemplo 1:   for (int indice=0; indice<clientes.size();indice++) {  
Cliente cli = (Cliente) clientes.get(indice);  
out.println(cli.getNomCli());  

Exemplo 2:

Iterator it = clientes.iterator();
while (it.hasNext()) {
Cliente cli = (Cliente) it.next();
out.println(cli.getNomCli());
}

Exemplo 3:
for (Object objeto_cliente:clientes) {
Cliente cli = (Cliente) objeto_cliente;
out.println(cli.getNomCli());
}

É correto afirmar que: