public class Solution {
    public static void main(String[] args) throws Exception {
        ArrayList<String> list = new ArrayList<>();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        for (int i = 0; i < 10; i++) {
            int n = 10 -i -1;
            list.set(n,bufferedReader.readLine());
        }

        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

    }
}
после первого инпута следующая ошибка
q
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 9 out of bounds for length 0
	at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
	at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
	at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)
	at java.base/java.util.Objects.checkIndex(Objects.java:372)
	at java.base/java.util.ArrayList.set(ArrayList.java:472)
	at com.javarush.task.task07.task0710.Solution.main(Solution.java:20)
но при таком коде
public class Solution {
    public static void main(String[] args) throws Exception {
        ArrayList<String> list = new ArrayList<>();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < 10; j++) {
                list.add(null);
            }
            int n = 10 -i -1;
            list.set(n,bufferedReader.readLine());
        }

        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

    }
}
мой ввод: q qq qqq qqqq qqqqq qqqqqq qqqqqqq qqqqqqqq qqqqqqqqq qqqqqqqqqq мой вывод: qqqqqqqqqq qqqqqqqqq qqqqqqqq qqqqqqq qqqqqq qqqqq qqqq qqq qq q null null null null null null null null null null null null null null null null null null null null null... почему так ?