Problem jest w tej linijce:
lista.add(i, tablica);
Zamień ją na:
lista.add(i, tablica[i]);
Zwróć uwagę co wykonujesz w kodzie.
korzystasz z metody:
add(int index, Object object)
dodajesz do listy za każdym przejściem pętli na podanym indexie aktualny obiekt tablicy. Dzieje się tak dlatego że używasz niegenerycznej kolekcji.
Zamiast tego skorzystaj z generycznej wersji takiej kolekcji. Druga sprawa to to, że deklarowanie wielkości listy jest trochę bez sensu, listy są fajne właśnie dlatego że dynamicznie zwiększają swoją wielkość. Zobacz przykładowe użycie generycznej wersji tej samej listy.
// deklaracja
ArrayList<String> lista = new ArrayList<>();
// użycie w pętli
lista.add(tablica[i])