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