Java bluej. Получить следующий элемент из arrayList - PullRequest
0 голосов
/ 22 марта 2020

Я начинающий, практикую java с bluej и пытаюсь напечатать следующий элемент каждый раз, когда использую метод getNext (). Я попробовал некоторые варианты, но они не работали, и теперь я застрял. Вот мой код:

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());


    }
}

1 Ответ

0 голосов
/ 22 марта 2020

Я предполагаю, что вы хотите напечатать только один вопрос, когда вызывается getNextQuestion. В этом случае вам нужно сделать следующее:

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

Как видите, counter теперь является глобальной переменной внутри класса, в котором содержится метод, и вам вообще не нужен итератор.

...