Pessoal alguém sabe se é possivel usar um for aprimorado para varrer uma lista ligada?? Alguém ja fez isso, e se sim, existe alguma sutileza??
Basta vc criar um objeto que estende Collections ai vc terá que implementar alguns metodos que tem neste modelo, um deles vai ser transformar, a lista em uma array, desta, forma é possivel realizar um for aprimorado. Mas se quiser primeiro use www.google.com.br e pesquise para ver se não já inventarão este recurso, acho muito parecido com o LinkedSet ele não tem os metodos next mas já da para realizar a mesma tarefa.
Para uma lista encadeada, vc pode fazer:
[code]
LinkedList< String > lista = new LinkedList< String >();
lista.add( “aaa” );
lista.add( “bbb” );
for ( String elemento : lista ) {
System.out.println( elemento );
}[/code]
Se você quiser implementar sua própria lista encadeada, ai sim, vc vai precisar fazer algo com que o rodrigo disse, mas não é Collections que você vai extender/implementar.
A hierarquia da lista encadeada no Java é a seguinte:
java.lang.Object
extended by java.util.AbstractCollection<E>
extended by java.util.AbstractList<E>
extended by java.util.AbstractSequentialList<E>
extended by java.util.LinkedList<E>
Sendo assim, dê uma olhada nessas classes e também nas interfaces implementadas, como Comparable, Iterable, etc.
Até mais!
Uma lista ligada (encadeada) não ordenada não pode ter aprimoramento, a pesquisa é serial.
Se a lista ligada estiver ordenada, pode armazenar o nodo da lista que tem um valor médio, para iniciar dele, como se fosse uma árvore.
Nem precisa ir tão longe. Basta a classe que ele quiser fazer o for each implementar Iterable.
Ela nem sequer precisa extender Collection.
Nem precisa ir tão longe. Basta a classe que ele quiser fazer o for each implementar Iterable.
Ela nem sequer precisa extender Collection.[/quote]
Pessoal, o problema dele é de otimização de estruturas de dados, não de java… Leiam novamente.
Nem precisa ir tão longe. Basta a classe que ele quiser fazer o for each implementar Iterable.
Ela nem sequer precisa extender Collection.[/quote]
Pessoal, o problema dele é de otimização de estruturas de dados, não de java… Leiam novamente.[/quote]
Mas como vc chegou a essa conclusão?
Ele que saber como usar um “for aprimorado” (aka foreach) em uma lista encadeada. Ele não quer aprimorar nada.
Realmente, como o Viny disse, a utilização do for each está relacionada a interface Iterable.
Até mais!
Nem precisa ir tão longe. Basta a classe que ele quiser fazer o for each implementar Iterable.
Ela nem sequer precisa extender Collection.[/quote]
Pessoal, o problema dele é de otimização de estruturas de dados, não de java… Leiam novamente.[/quote]
Mas como vc chegou a essa conclusão?
Ele que saber como usar um “for aprimorado” (aka foreach) em uma lista encadeada. Ele não quer aprimorar nada.
Realmente, como o Viny disse, a utilização do for each está relacionada a interface Iterable.
Até mais![/quote]
Tem razão, não li o for! :oops: