//He will glorify me, for he will take from what is mine, and will declare it to you. (John 16:14) package com.javarush.task.task16.task1614; //He will glorify me, for he will take from what is mine, and will declare it to you. (John 16:14) import java.util.ArrayList; import java.util.List; /* Обратный отсчет */ public class Solution { public static volatile List list = new ArrayList(5); static { for (int i = 0; i < 5; i++) { list.add("Строка " + i); } } public static void main(String[] args) throws InterruptedException { Thread t = new Thread(new Countdown(3), "Countdown"); t.start(); } public static class Countdown implements Runnable { private int countFrom; public Countdown(int countFrom) { this.countFrom = countFrom; } public void run() { try { while (countFrom > 0) { printCountdown(); } } catch (InterruptedException e) { } } public void printCountdown() throws InterruptedException { countFrom --;//add your code here - добавь код тут try{Thread.sleep(500);}catch (InterruptedException e) {e.printStackTrace();} System.out.println(list.get(countFrom)); } } } /* Обратный отсчет 1. Разберись, что делает программа. 2. Реализуй логику метода printCountdown так, чтобы программа каждые полсекунды выводила объект из переменной list. Выводить нужно в обратном порядке — от переданного в Countdown индекса до нуля. Пример: Передан индекс 3 Пример вывода в консоль: Строка 2 Строка 1 Строка 0 Требования: 1. Метод printCountdown должен работать примерно полсекунды. 2. Метод printCountdown должен уменьшать (декрементировать) значение переменной countFrom. 3. Метод printCountdown должен выводить элемент списка list с индексом равным новому значению countFrom. 4. Метод main должен создавать один объект типа Countdown. 5. Вывод программы должен соответствовать примеру из условия. package com.javarush.task.task16.task1614; import java.util.ArrayList; import java.util.List; /* Обратный отсчет */ public class Solution { public static volatile List list = new ArrayList(5); static { for (int i = 0; i < 5; i++) { list.add("Строка " + i); } } public static void main(String[] args) throws InterruptedException { Thread t = new Thread(new Countdown(3), "Countdown"); t.start(); } public static class Countdown implements Runnable { private int countFrom; public Countdown(int countFrom) { this.countFrom = countFrom; } public void run() { try { while (countFrom > 0) { printCountdown(); } } catch (InterruptedException e) { } } public void printCountdown() throws InterruptedException { //add your code here - добавь код тут } } } */