Посмотрел решения других - коды разные, решение аналогично, но в моём случае не работает. 1. Создай список строк. 2. Добавь в него 10 строчек с клавиатуры. 3. Узнай, какая строка в списке встретится раньше: самая короткая или самая длинная. Если таких строк несколько, то должны быть учтены самые первые из них. 4. Выведи на экран строку из п.3. Должна быть выведена одна строка. Требования: 1. Объяви переменную типа список строк и сразу проинициализируй ee. 2. Программа должна считывать 10 строк с клавиатуры и добавлять их в список. 3. Программа должна выводить на экран самую короткую строку, если она была раньше самой длинной. 4. Программа должна выводить на экран самую длинную строку, если она была раньше самой короткой. 5. Должна быть выведена только одна строка.
public class Solution {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        ArrayList<String> list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {list.add(reader.readLine());}
        int max = 0;
        int min = list.get(0).length();
        for (int i = 0; i < 10; i++) {
            if (list.get(i).length() > max) {max = list.get(i).length();}
        }
        for (int i = 0; i < 10; i++) {
            if (list.get(i).length() < min) {min = list.get(i).length();}
        }
        String s = null;
        String s1 = null;
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).length() == max) s = list.get(i);
            if (list.get(i).length() == min) s1 = list.get(i);
            if (list.indexOf(s) > list.indexOf(s1)) {
                System.out.println(list.get(max));
            } else System.out.println(list.get(min));
        }
    }
}