В общем не могу понять как продолжить, я сделал на время для наглядности вывод на экран индексов минимальных и максимальных элементов, завёл эти индексы в 2 массива. Теперь я так понимаю мне их надо как то сравнить, и вывести строку того индекса мин или макс, что встречается первым. При этом если строк несколько одинаковых вначале, то вывести надо их все. Вот в этом весь ступор, как это условие полностью выполнить не пойму.
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 Exception {
ArrayList <String> list = new ArrayList<String>();//напишите тут ваш код
ArrayList <Integer> length = new ArrayList<Integer>();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
for (int i = 0; i < 10; i++) {
list.add(reader.readLine());
length.add(list.get(i).length());
}
int min = length.get(0);
int max = length.get(0);;
ArrayList <Integer> total_min = new ArrayList<Integer>();
ArrayList <Integer> total_max = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
min = min < length.get(i) ? min : length.get(i);
max = max > length.get(i) ? min : length.get(i);
}
for (int i = 0; i < 10; i++) {
if (list.get(i).length() == max) {
System.out.println("max index = " + list.indexOf(list.get(i)));
total_max.add(list.indexOf(list.get(i)));
}
if (list.get(i).length() == min) {
System.out.println("min index = " + list.indexOf(list.get(i)));
total_min.add(list.indexOf(list.get(i)));
}
}
System.out.println("Min indexes = " + total_min);
System.out.println("Max indexes = " + total_max);
}
}
Пример ввода:
раз
два
три
четыре
пять
шесть
семь
восемь
девять
десять
Пример вывода:
min index = 0
min index = 1
min index = 2
max index = 3
max index = 7
max index = 8
max index = 9
Min indexes = [0, 1, 2]
Max indexes = [3, 7, 8, 9]