Все условия соблюдены , и выводил сначала наименьшее количество символов а потом искал равных все ровно не помоглою
package com.javarush.task.task07.task0709;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Выражаемся покороче
1. Создай список строк.
2. Считай с клавиатуры 5 строк и добавь в список.
3. Используя цикл, найди самую короткую строку в списке.
4. Выведи найденную строку на экран.
5. Если таких строк несколько, выведи каждую с новой строки.
Требования:
1. Объяви переменную типа список строк и сразу проинициализируй ee.
2. Программа должна считывать 5 строк с клавиатуры и записывать их в список.
3. Программа должна выводить самую короткую строку на экран.
4. Если есть несколько строк с длиной равной минимальной, то нужно вывести каждую из них с новой строки.
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(reader.readLine());
String s = reader.readLine();
*/
public class Solution {
public static void main(String[] args) throws Exception {
ArrayList<String> q = new ArrayList<>();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String min=null;
for (int i= 0 ;i<5;i++){
String a = reader.readLine();
q.add(a);
}
for (int e=1;q.size()>e;e++ ){
if ( q.get(e-1).length()> q.get(e).length())min=q.get(e);
else min=q.get(e-1);
}
System.out.println(min);
for (int i=0;q.size()>i;i++){
if (min!=q.get(i))
if (min.length()==q.get(i).length()) System.out.println(q.get(i));
}
}
}