public class Solution { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); ArrayList<String> list = new ArrayList<String>(); for (int i = 0 ; i<10; i ++){ list.add(sc.nextLine()); } int min = list.get(0).length(); int indexMin= 0; int max = list.get(0).length(); int indexMax = 0; for (int i = 0 ; i<10; i++){ if (max<list.get(i).length()){ max=list.get(i).length(); indexMax=i; } } for (int i = 0; i<10;i++){ if (min > list.get(i).length()){ min=list.get(i).length(); indexMin=i; } } if (indexMax>indexMin){ System.out.println(list.get(indexMin)); }else { System.out.println(list.get(indexMax)); } } } Решил с помощью одного из советов - создал 4 переменные: две из них минимальная и максимальная длинна строки нулевого элемента массива, два счетчика. Не могу понять логику работы этого самого счетчика - он записывает минимальный элемент массива? и последнее условие с выводом на экран сделал методом тыка - можете объяснить с точки зрения синтаксиса, как это работает?