Dúvida Iterator

1 resposta
Gustavo_Santos

Galera o seguinte código dá um erro de compilação:

public class Teste {

	public static Iterator reverse(List list) {
		Collections.reverse(list);
		return list.iterator();
	}

	public static void main(String[] args) {
		List list = new ArrayList();
		list.add("1");
		list.add("2");
		list.add("3");
		for (Object obj : reverse(list)) //BEM AQUI...
			System.out.print(obj + ", ");
	}

}

Alguém sabe axplicar ? Acho que é porque eu não consigo iterar em um Iterator por assim dizer …

Grato a quem ajudar !

1 Resposta

davidbuzatto

Seu método reverse modifica a lista que é passada como parâmetro e retorna o iterator. Pq?
Vc teria que retornar a lista, que por sua vez já foi modificada. Então pq ter um método para reverter se o método de Collections já faz isso???
O segundo argumento do foreach é uma coleção e não um iterator.
Se for uma lista de Strings, use os tipos genéricos.

public class Teste {

	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		list.add("1");
		list.add("2");
		list.add("3");
		Collections.reverse(list);
		for (String str : list)
			System.out.print(str + ", ");
	}

}
[]´s
Criado 7 de setembro de 2010
Ultima resposta 7 de set. de 2010
Respostas 1
Participantes 2