Duvida referente Iterator ...executar uma unica vez um metodo dentro do loop

6 respostas
P

Olá,

uma duvida tem como identificar no Iterator algum metodo que me traga o valor que está
incrementando como fosse o “FOR” pois quero executar um metodo uma unica vez …

se alguém pudr me ajudar agradeceria…

abs

for (Iterator iterator = usuariosdoctos.iterator(); iterator.hasNext();) {
				User user = (User) iterator.next();

                        
                        if (1==1){
                           System.out.println("e o que quero fazer uma vez");
                        }
				System.out.println("valor ="+iterator);
				System.out.println("Usuario Id ="+user.getId());
				System.out.println("Usuario Nome ="+user.getName());
				System.out.println("Usuario Email ="+user.getEmail());
				System.out.println("_________________________________________");
				
				
			}

6 Respostas

wbdsjunior
paribe:

Olá,

uma duvida tem como identificar no Iterator algum metodo que me traga o valor que está
incrementando como fosse o "FOR" pois quero executar um metodo uma unica vez ...

se alguém pudr me ajudar agradeceria....

abs

for (Iterator iterator = usuariosdoctos.iterator(); iterator.hasNext();) {
				User user = (User) iterator.next();

                        
                        if (1==1){
                           System.out.println("e o que quero fazer uma vez");
                        }
				System.out.println("valor ="+iterator);
				System.out.println("Usuario Id ="+user.getId());
				System.out.println("Usuario Nome ="+user.getName());
				System.out.println("Usuario Email ="+user.getEmail());
				System.out.println("_________________________________________");
				
				
			}
um contadorzinho não serve?
int i = 0;

for (Iterator iterator = usuariosdoctos.iterator(); iterator.hasNext();) {
    i++;

    User user = (User) iterator.next();
                    
    if (i == 1){
        System.out.println("e o que quero fazer uma vez");
    }
    System.out.println("valor ="+iterator);
    System.out.println("Usuario Id ="+user.getId());
    System.out.println("Usuario Nome ="+user.getName());
    System.out.println("Usuario Email ="+user.getEmail());
    System.out.println("_________________________________________");				
}
S

Se quer executar apenas uma vez pode fazer assim:

Iterator iterator = usuariosdoctos.iterator(); User user = (User) iterator.next();

Nao precisa fazer um loop.

ou se nao colocar um break dentro do loop.

Valeu

wbdsjunior
se for só esse System.out.println, outra sugestão...
System.out.println("e o que quero fazer uma vez");

for (Iterator iterator = usuariosdoctos.iterator(); iterator.hasNext();) {
    User user = (User) iterator.next();

    System.out.println("valor ="+iterator);
    System.out.println("Usuario Id ="+user.getId());
    System.out.println("Usuario Nome ="+user.getName());
    System.out.println("Usuario Email ="+user.getEmail()); 
    System.out.println("_________________________________________");
}
sergiotaborda

Para quê vc vai somar i para todos os passos do loop ?
Ele só precisa de testar se é o primeiro. Um variável com 2 estados (boolean) é suficiente.

quanto à questão. Algo está errado no seu modelo se vc precisa executar apenas na primeira iteração do loop.
Ou vc retira essa parte do loop e a executa antes (muito melhor), ou usa um flag booleano (pior)

wbdsjunior

sergiotaborda:
wbdsjunior:

um contadorzinho não serve?

Para quê vc vai somar i para todos os passos do loop ?
Ele só precisa de testar se é o primeiro. Um variável com 2 estados (boolean) é suficiente.


você tem toda razão.

ViniGodoy

Com certeza, o que o Sergio falou faz muito mais sentido:

System.out.println("e o que quero fazer uma vez"); for (Iterator iterator = usuariosdoctos.iterator(); iterator.hasNext();) { User user = (User) iterator.next(); System.out.println("valor ="+iterator); System.out.println("Usuario Id ="+user.getId()); System.out.println("Usuario Nome ="+user.getName()); System.out.println("Usuario Email ="+user.getEmail()); System.out.println("_________________________________________"); }

Você ainda está usando Java 4?
Por que a partir do Java 5 há formas muito melhores de se fazer isso, evitando os casts, por exemplo.

Criado 19 de dezembro de 2008
Ultima resposta 19 de dez. de 2008
Respostas 6
Participantes 5