Duvida referente Iterator ...executar uma unica vez um metodo dentro do loop
6 respostas
P
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("_________________________________________");
}
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
SlashJava
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.