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

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("_________________________________________");
				
				
			}

[quote=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("_________________________________________");
				
				
			}
[/code][/quote]
um contadorzinho não serve?
[code]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("_________________________________________");				
}

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

se for só esse System.out.println, outra sugestão…

[code]System.out.println(“e o que quero fazer uma vez”);

for (Iterator iterator = usuariosdoctos.iterator(); iterator.hasNext():wink: {
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("_________________________________________");

}[/code]

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)

[quote=sergiotaborda][quote=wbdsjunior]
um contadorzinho não serve?
[/quote]

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.[/quote]
você tem toda razão.

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.