Dimitrov:
Estoy practicando para principiantes Java con BlueJ y tratando de imprimir el siguiente elemento cada vez que utilizo el método getNext (). Probé algunas opciones pero no funcionó y ahora estoy atascado. Aquí está mi código:
public void getNextQuestion()
{
int counter = 0;
Iterator<Questions> it = this.questions.iterator();
while(it.hasNext())
{
counter = counter + 1;
Questions nextObject = it.next();
System.out.println(counter+ ". " + nextObject.getDescription());
}
}
Schred:
Estoy adivinando que sólo desea imprimir una pregunta cada vez que getNextQuestion
se llama. En ese caso, es necesario hacer esto:
public class MyClass {
int counter = 0;
public void getNextQuestion()
{
Questions nextObject = questions.get(counter);
counter = counter + 1;
// If counter gets to the end of the list, start from the beginning.
if(counter >= questions.size())
counter = 0;
System.out.println(counter+ ". " + nextObject.getDescription());
}
}
Como se puede ver, counter
es ahora una variable global dentro whaever clase contiene el método, y que no es necesario el iterador en absoluto.