Программа работает.
Выдает верный результат. Но!
Валидатор пишет - слишком длинный код.
Да ладно.
ну посмотрите разве он длинный? всего четыре метода (помимо основного)
Комрадос, что не так?
package com.javarush.task.task07.task0712;
import javax.sound.midi.Soundbank;
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> listStrings = new ArrayList<>();
listStrings = inputListStrings();
int min = minLengthOfStrings(listStrings);
int max = maxLengthOfStrings(listStrings);
searchMinMaxStringAndPrint(min, max, listStrings);
}
public static ArrayList<String> inputListStrings() throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> arrayList = new ArrayList<>();
for (int i = 0; i < 10; i++) {
arrayList.add(i, reader.readLine());
}
return arrayList;
}
public static int minLengthOfStrings(ArrayList<String> arrayList){
int min = arrayList.get(0).length();
for (int i = 0; i < arrayList.size(); i++) {
if (min >= arrayList.get(i).length()){
min = arrayList.get(i).length();
}
}
return min;
}
public static int maxLengthOfStrings(ArrayList<String> arrayList) {
int max = arrayList.get(0).length();
int j = 0;
for (int i = 0; i < arrayList.size(); i++) {
if (max <= arrayList.get(i).length()) {
max = arrayList.get(i).length();
}
}
return max;
}
public static void searchMinMaxStringAndPrint(int min, int max, ArrayList<String> arrayList ) {
ArrayList<Integer> indexMinStringFromStrings = new ArrayList<>();
ArrayList<Integer> indexMaxStringFromStrings = new ArrayList<>();
int j=0;
for (int i = 0; i < arrayList.size(); i++) {
int lengthStr = arrayList.get(i).length();
if (lengthStr == min) {
indexMinStringFromStrings.add(j, i);
j++;
}
}
j=0;
for (int i = 0; i < arrayList.size(); i++) {
int lengthStr = arrayList.get(i).length();
if (lengthStr == max) {
indexMaxStringFromStrings.add(j, i);
j++;
}
}
//System.out.println(indexMaxStringFromStrings);
if(indexMaxStringFromStrings.get(0) > indexMinStringFromStrings.get(0)) {
System.out.println(arrayList.get(indexMinStringFromStrings.get(0)));
}
else {
System.out.println(arrayList.get(indexMaxStringFromStrings.get(0)));
}
}
}
ты выводишь на экран не строку, а индекс строки.