Все что мог комментариями объяснил, где я не понял?
Объясните , как можно сделать легче, если можно
package com.javarush.task.task07.task0712;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Самые-самые
*/
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());}
// Создание списка с длинами каждой строки из списка list
ArrayList<Integer> listLongs = new ArrayList<>();
// Цикл заполняет список длин длинами строк первого списка
for(int i = 0; i < 10; i++){listLongs.add(list.get(i).length());}
// 4 Вспомогательные переменные
int minIndex = 0;
int maxIndex = 0;
int min = listLongs.get(0);
int max = listLongs.get(0);
// Сложный Цикл
for(int i = 0; i < 10; i++){
int a = listLongs.get(i); //Чтобы не занимать много места
if((a > max)&&(a > min)){ //Если элемент i списка listLongs больше переменных min и max то:
maxIndex = i; //Индекс максимального числа равен i
max = a; //Максимальное число это элемент i списка listLongs
}
else if((a < min)&&(a < max)){ //Иначе если элемент i списка listLongs меньше переменных min и max то:
minIndex = i; //Индекс минимального числа равен i
min = a; //Минимальное число равно i
}
}
// Сложный Алгоритм
if(maxIndex > minIndex){ //Если maxIndex больше minIndex
System.out.println(list.get(min)); //Выводим min
}
else if(minIndex > maxIndex){ //Иначе если minIndex больше maxIndex
System.out.println(list.get(max)); //Выводим max
}
}
}