Подтвердить что ты не робот

Integer список Java

Я пытаюсь сделать java пройти через список чисел. Он выбирает первый, дает это как выход, ждет/спит, как 2000 миллисекунд, а затем дает следующий в качестве вывода, ждет 2000 миллисекунд и т.д.

Они не должны перечисляться за каждой стороной, поэтому, когда мой список: 10 20 30 40 50

Он не должен давать в качестве вывода: 10 20 30 40 50. Но всего 50.

Было бы еще лучше, если бы он смог повториться.

До сих пор я пытался:

List<Integer> myCoords = new ArrayList<Integer>();
myCoords.add(10);
myCoords.add(20);
myCoords.add(30);
myCoords.add(40);
myCoords.add(50);
Iterator<Integer> myListIterator = someList.iterator(); 
while (myListIterator.hasNext()) {
    Integer coord = myListIterator.next();     
}

Но у этого нет таймера, и я не уверен, что это будет показывать только "20" или "10 20 30 40 50". И я действительно не знаю, как поставить команду sleep/wait и повторить команду: s (возможно, упустил команду повтора, если она уже включена)

Edit Tyvm все, теперь я могу продолжить остальную кодировку:)

4b9b3361

Ответ 1

Если вы хотите переписать строку на консоли, напечатайте управляющий символ \r (возврат каретки).

List<Integer> myCoords = new ArrayList<Integer>();
myCoords.add(10);
myCoords.add(20);
myCoords.add(30);
myCoords.add(40);
myCoords.add(50);
Iterator<Integer> myListIterator = myCoords.iterator(); 
while (myListIterator.hasNext()) {
    Integer coord = myListIterator.next();     
    System.out.print("\r");
    System.out.print(coord);
    Thread.sleep(2000);
}

Ответ 2

который работает, но вывод:

10
20
30
40
50

так:

    List<Integer> myCoords = new ArrayList<Integer>();
    myCoords.add(10);
    myCoords.add(20);
    myCoords.add(30);
    myCoords.add(40);
    myCoords.add(50);
    for (Integer number : myCoords) {
        System.out.println(number);
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

Ответ 3

Чтобы вставить команду sleep, вы можете использовать Thread.sleep(2000). Таким образом, код будет выглядеть следующим образом:

List<Integer> myCoords = new ArrayList<Integer>();
myCoords.add(10);
myCoords.add(20);
myCoords.add(30);
myCoords.add(40);
myCoords.add(50);
Iterator<Integer> myListIterator = someList.iterator(); 
while (myListIterator.hasNext()) {
    Integer coord = myListIterator.next();    
    System.out.println(coord);
    Thread.Sleep(2000);
}

Это приведет к выводу:  10  20  30  40  50

Если вам нужны номера после друг друга, вы можете использовать: System.out.print(coord + ""); и если вы хотите повторить раздел, вы можете поместить его в другой цикл while.

List<Integer> myCoords = new ArrayList<Integer>();
myCoords.add(10);
myCoords.add(20);
myCoords.add(30);
myCoords.add(40);
myCoords.add(50);
while(true)
    Iterator<Integer> myListIterator = someList.iterator(); 
    while (myListIterator.hasNext()) {
        Integer coord = myListIterator.next();    
        System.out.print(coord + " ");
        Thread.Sleep(2000);
    }
}

Это будет выводить: 10 20 30 40 50 10 20 30 40 50... и никогда не останавливаться, пока вы не убьете программу.

Изменить: вам нужно поставить команду sleep в блок catch try

Ответ 4

Значит, это будет:

List<Integer> myCoords = new ArrayList<Integer>();
myCoords.add(10);
myCoords.add(20);
myCoords.add(30);
myCoords.add(40);
myCoords.add(50);
while(true)
    Iterator<Integer> myListIterator = myCoords.iterator(); 
    while (myListIterator.hasNext()) {
        Integer coord = myListIterator.next();    
        System.out.print("\r" + coord);
        try{
    Thread.sleep(2000);
  }catch(Exception e){
   // handle the exception...
  }
    }
}

Ответ 5

Давайте использовать некоторые функции Java 8:

IntStream.iterate(10, x -> x + 10).limit(5)
  .forEach(System.out::println);

Если вам нужно сохранить номера, вы можете собрать их в коллекцию, например:

List numbers = IntStream.iterate(10, x -> x + 10).limit(5)
  .boxed()
  .collect(Collectors.toList());

И добавлена некоторая задержка:

IntStream.iterate(10, x -> x + 10).limit(5)
  .forEach(x -> {
    System.out.println(x);
    try {
      Thread.sleep(2000);
    } catch (InterruptedException e) {
      // Do something with the exception
    }  
  });