1. Создай список строк. 2. Считай с клавиатуры 5 строк и добавь в список. 3. Используя цикл, найди самую длинную строку в списке. 4. Выведи найденную строку на экран. 5. Если таких строк несколько, выведи каждую с новой строки. Требования: 1. Объяви переменную типа ArrayList (список строк) и сразу проинициализируй ee. 2. Программа должна считывать 5 строк с клавиатуры и записывать их в список. 3. Программа должна выводить самую длинную строку на экран. 4. Если есть несколько строк с длиной равной максимальной, то нужно вывести каждую из них с новой строки.
package com.javarush.task.task07.task0708;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;

/*
Самая длинная строка
*/

public class Solution {
    public static void main(String[] args) throws Exception {

        ArrayList <String> list = new ArrayList();
        ArrayList <String> longestStrings  = new ArrayList();

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        for (int i = 0; i < 5 ; i++) {
            list.add(reader.readLine());
        }

        int maxLength = list.get(0).length();

        for (int i = 0; i < list.size() ; i++) { // поиск максимальной длины
            if (list.get(i).length() > maxLength) {
                maxLength = list.get(i).length();
            }
        }

        for (int i = 0; i < list.size() ; i++) { // добавление самых длинных строк в массив
            if (list.get(i).length() == maxLength){
                longestStrings.add(list.get(i));
            }
        }

        for (int i = 0; i < longestStrings.size() ; i++) { // вывод самых длинных строк
            System.out.println(longestStrings.get(i));
        }

    }
}
Понимаю что накручено и скорее всего можно было сделать гораздо проще и вообще одним массивом. Но в чем конкретно прокол? Помогите найти.