Решал эту задачу несколько дней. Все равно чего-то не хватало. И вот наконец какие-то ростки решения начали проявляться в голове, но...не до конца. Что еще нужно добавить в этом коде? Просто, если я ввожу первую строку, которая больше, чем 2 введеная строка, то выводится сразу после ввода 1 строка. И то же самое наоборот. Как быть?
public class Solution {
    private static List<String> strings;

    public static void main(String[] args) throws Exception {
        //напишите тут ваш код
        String str;
        String max;
        strings = new ArrayList<String>();
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        for(int i = 0;i<5;i++){
            strings.add(i,reader.readLine());
            max = strings.get(0);
            str = strings.get(i);
            if(max.length() < str.length()){
                max = str;
                System.out.println(max);
            }else if (max.length() > str.length()){
                System.out.println(max);
            }
        }
        reader.close();

    }
}