Нужно задействовать массив листов при инициализации таким образом
List<String>[] FinishFile = new ArrayList<String>[12];
Eclipse выдал ошибку:
Cannot create a generic array of ArrayList
в итоге прокатил такой вариант
List<String>[] FinishFile = new ArrayList[12];
Почему?
Это связано с тем, что компилятор не может вам гарантировать типобезопасность (type safety) для массивов обобщенных типов, потому что массив может быть приведен к более широкому типу (с потерей информации от обобщенном типе).
Например, если бы первый вариант работал, это приводило бы к таким ситуациям:
List<Integer> ints = new ArrayList<Integer>();
ints.add(1);
List<String>[] a = new ArrayList<String>[5]; // предположим, это допустимо
Object[] o = a; // вполне разрешенный upcast, но информация о generic типе потерялась
o[0] = ints;
String s = a[0].get(0); // ошибка приведения типа во время выполнения программы
Система generics же в Java направлена на проверку типов и гарантии безопасности типов как раз на этапе компиляции. Поэтому вы будете вынуждены написать:
List<String>[] a = new ArrayList[5];
и получите Warning от компилятора и предупреждение в IDE, после которого ответственность за потенциальные ошибки перекладывается на вас.
PS. Вообще массив коллекций — довольно сомнительная практика, обычно массивы применяются для примитивных типов там, где есть какие-то вычисления или сериализация/десериализация в бинарные данные.
Используйте List<List<String>> и живите в типобезопасном мире.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники