for (int i = 0; i<list.size(); i++){ int j = list.size() - i - 1; System.out.println(list.get(j)); Не могу понять как работает этот алгоритм. Почему именно формула int j = list.size() - i - 1; выводит строки в обратном порядке. int j = list.size() - i вот такая запись понятна, так как i<list.size(); но почему ещё -1? Может кто подробно расписать механику?