Como faço para percorrer uma arraylist de objetos?

Gostaria de percorrer uma array list de objetos…
tipo…
tenho uma arraylist em q cada elemento eh um objeto obj, onde esse obj tem os seguintes atributos int x1, String x2,
como faço para obter uma listagem disso?

vlw

Método antigo (até JDK 1.4):

List lista = new ArrayList();
... preencha a lista com seus objetos;
for (int i = 0; i < lista.size(); ++i) {
    SuaClasse obj = (SuaClasse) lista.get(i);
    System.out.println (obj.x1 + "," + obj.x2);
}

JDK 5.0 ou superior:

List<SuaClasse> lista = new ArrayList<SuaClasse>();
... preencha a lista com seus objetos;
for (SuaClasse obj : lista) {
    System.out.println (obj.x1 + "," + obj.x2);
}
1 curtida

Vlw pela paciencia thingol…
deu certo aqui…

no caso do “modelo antigo”, não é muito eficiente usar desse modo, utilize o iterator:

List lista = new ArrayList(); ... preencha a lista com seus objetos; for (Iterator iterator = lista.iterator(); iterator.hasNext(); ) { SuaClasse obj = (SuaClasse) iterator.next(); System.out.println (obj.x1 + "," + obj.x2); }

flw

[quote=dudaskank]no caso do “modelo antigo”, não é muito eficiente usar desse modo, utilize o iterator:

List lista = new ArrayList(); ... preencha a lista com seus objetos; for (Iterator iterator = lista.iterator(); iterator.hasNext(); ) { SuaClasse obj = (SuaClasse) iterator.next(); System.out.println (obj.x1 + "," + obj.x2); }

flw[/quote]

a) Na verdade só não seria eficiente se a lista não fosse um ArrayList (acesso aleatório, porque ela é baseada em um array). Se fosse um LinkedList aí um iterador é mais rápido.
b) Prefiro usar get(i) para mostrar em exemplos em vez do iterator - é que vi que as pessoas têm bastante dificuldade de entender o que é um iterator.

[quote=thingol]
a) Na verdade só não seria eficiente se a lista não fosse um ArrayList (acesso aleatório, porque ela é baseada em um array). Se fosse um LinkedList aí um iterador é mais rápido.
b) Prefiro usar get(i) para mostrar em exemplos em vez do iterator - é que vi que as pessoas têm bastante dificuldade de entender o que é um iterator. [/quote]

a) hmm… verdade hehe.
b) para quem está acostumado com vetor e array, provavelmente o get(indice) realmente parece ser mais lógico, mas não acho o iterador seja essa dificuldade toda hehehe.

magnus, o iterador (java.util.Iterator) caso nunca tenha ouvido falar é uma classe criada unicamente para atravessar uma coleção, basicamente isso. maiores informações aqui

:slight_smile:

Na verdade é sim.

Eu peno um monte quando vou explicar STL (uma biblioteca do C++) a programadores C/C++ porque o conceito de iteradores, embora seja semelhante ao de ponteiros © e de cursores (SQL), não é fácil de explicar para quem já está bitolado com ponteiros ou arrays.
Mesma coisa para aqueles programadores Java que nunca viram uma Collection qualquer. Não são raros, porque há muitos professores que ensinam Java 1.1 e olhe lá. (Por que é que eles ainda insistem com applets?)

[quote=thingol][quote=dudaskank]
b) para quem está acostumado com vetor e array, provavelmente o get(indice) realmente parece ser mais lógico, mas não acho o iterador seja essa dificuldade toda hehehe.
[/quote]

Na verdade é sim.

Eu peno um monte quando vou explicar STL (uma biblioteca do C++) a programadores C/C++ porque o conceito de iteradores, embora seja semelhante ao de ponteiros © e de cursores (SQL), não é fácil de explicar para quem já está bitolado com ponteiros ou arrays.
Mesma coisa para aqueles programadores Java que nunca viram uma Collection qualquer. Não são raros, porque há muitos professores que ensinam Java 1.1 e olhe lá. (Por que é que eles ainda insistem com applets?)[/quote]

Nossa…diz uma verdade…
Eu venho da linguagem C e posso dizer como é estranho entrar em uma linguagem aonde não mexemos com os poderosos e traiçoeiros ponteiros!:expressionless:
mas é algo superável…depois de alguns meses na reabilitação… :shock:
ahyahahhaha

Concordo sobre como usar o get() do ArrayList é intuitivo.
E tenho minha opinião sobre quando usar o iterator.
Quando estou trabalhando com um objeto do tipo java.util.Collection, e não sei qual a implementação deste objeto. Uso java.util.Iterator pra varrer a lista.

Antes disso eu apelava… dava Cast pra java.util.ArrayList, ou não fazia!
^.^