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