Понимаю, что в этом цикле во время прогона переменная index1 и index2 могут поменяться,если найдётся другое совпадение. Не понимаю как эту карусель остановить, если найдётся в массиве первые нужные индексы(в случае, если минимальных и максимальных несколько из строк).
for(int i = 0; i < array.size(); i++){
if(min.length() == array.get(i).length()){
index1 = i;
//System.out.println("самая короткая строка - " + array.get(i));
}
if(max.length() == array.get(i).length()){
index2 = i;
//System.out.println("самая длинная строка - " + array.get(i));
}
}
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 {
ArrayList<String> array = new ArrayList<>();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
for(int i = 0; i < 10; i++){
array.add(i, reader.readLine());
}
String min = array.get(0);
String max = array.get(9);
for(int i = 0; i < array.size(); i++){
if(min.length() > array.get(i).length()) min = array.get(i);
if(max.length() < array.get(i).length()) max = array.get(i);
}
int index1 = 0;
int index2 = 0;
for(int i = 0; i < array.size(); i++){
if(min.length() == array.get(i).length()){
index1 = i;
//System.out.println("самая короткая строка - " + array.get(i));
}
if(max.length() == array.get(i).length()){
index2 = i;
//System.out.println("самая длинная строка - " + array.get(i));
}
}
if(index1 < index2){
System.out.println(array.get(index1));
}else{
System.out.println(array.get(index2));
}
}
}