Я решил задачу, но всё равно не понял. Почему нельзя было создать второй список для строк, длина которых равна максимальной? При таком решении проверка мне выдаёт, что я не вывел максимальную строку и строки с длиной, равной максимальной. Буду рад, если поможете разобраться.
public class Solution {
    private static List<String> strings = new ArrayList<String>();

    public static void main(String[] args) throws Exception {
        ArrayList<String> listmax = new ArrayList<String>();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        for (int i=1; i<6; i++) {
            String str = br.readLine();
            strings.add(str);
        }
        String max = strings.get(0);
        for (int i=1; i<strings.size(); i++) {
            String str = strings.get(i);
            if (str.length()>max.length()) {
                max = str;
            if (str.length()==max.length()) {
                listmax.add(str);
            }
            }
        }
        for (int i=0; i "< "listmax.size(); i++) {//знак меньше в кавычках т.к. сайт обрезает код на нём
                System.out.println(listmax.get(i));
            }
    }
}