package jogogalo; import java.util.List; import java.util.Iterator; import java.util.ArrayList; import java.util.Comparator; import java.util.Collections; public class AplicacaoJogoGalo { private List<JogoGalo> _jogos; public AplicacaoJogoGalo() { _jogos = new ArrayList<>(); } public void guarda(JogoGalo jogo) { _jogos.add(jogo); } public JogoGalo obtemJogo(int idx) { if (idx <= 0 || idx > _jogos.size()) return null; return _jogos.get(idx - 1); } public void escreveResultado() { int i = 0; for (JogoGalo jogo : _jogos) { System.out.println("Resultado do jogo " + i++ + "\n" + jogo); } } }
O método escreveResultado pode ser concretizado sem utilizar o ciclo for-each, recorrendo à funcionalidade Iterator. Assim, o método podeeria ser concretizado da seguinte forma:
public void escreveResultado() { Iterator<JogoGalo> iter = _jogos.iterator(); int i = 0; while (iter.hasNext()) { JogoGalo jogo = iter.next(); System.out.println("Resultado do jogo " + i++ + "\n" + jogo); } }