Isso que você quer fazer realmente não tem jeito porque geraria recursão infinita.
Você tem que colocar uma variável auxiliar para poder receber os contatos dentro do for.
Não testei o código deve ter erro mas espero que dê pra pegar a idéia.
Contato contato = null;
for ( int i = 0; i < listaContatos.size() && (contato = listaContatos.get(i)) != null; i++) {
Já vai funcionar…
Só tome cuidado, como o badjceo disse, se você adicionar em TODAS as iterações, o loop ficará infinito… mas se você não for colocar em todas (e ter a plena certeza disso), é só fazer a alteração que eu disse.