Почему не работает метод length?
Для того, чтобы ArrayList знал, какие объекты в нем хранятся, нужно указать их класс явно:ArrayList<String> list = new ArrayList<>();
Тогда list.get(i) будет возвращать String и желаемый код заработает.
Запись же ArrayList list = new ArrayList()
эквивалентна записиArrayList<Object> list = new ArrayList<>()
В таком случае, list.get(i) возвращает не String, а Object, у которого метода length() просто не существует
Вы используете не массив а ArrayList т.е. Коллекцию 
в Коллекциях вместо lenght() есть метод size() - который возвращает количество елементов в коллекции 
list.get(i)  вы получаете конкретный елемент из коллекции  и пытаетесь вызвать у него метод lenght() т.е. не длинну массива а длинну конкретного елемента