Самые-самые

  • 10
  • Недоступна
Игры со списками в Java очень популярны. А всё потому, что это просто и интересно. Присоединяйтесь! В этой задачке создаем список строк. Затем — добавляем в него 10 строчек с клавиатуры. Самое интересное — определяем, какая строка в списке встретится раньше: самая короткая или самая длинная. Если таких строк несколько, учитываем самые первые из них.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (417)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Станислав7 уровень, Москва
позавчера, 16:24
Чит коды: инициализируете строки максимум (пустая строка) и минимум ( строка символов в 20) Первым циклом заполняете коллекцию. Вторым циклом (forEach) записываете максимальную и минимальную строку (экономим ресурсы за минимум итераций максимум пользы) Проверяете индекс какой из строк меньше. Строка минимум должна быть обязательно инициализирована большой, "" не прокатит.
vzubkeviсh7 уровень, Санкт-Петербург
позавчера, 22:17
сделал немного по-другому сделал строки мин и макс и числа мин и макс выяснил какая строка меньше, какая больше, присвоил числам номера индексов массива, сравнил их и вывел строку в консоль
Anani8 уровень, Summa
22 сентября, 13:54
По сути, найти самую короткую и самую длинную строки, потом сравнить их индексы в массиве через indexOf()
Иван11 уровень, Москва
17 сентября, 08:01
Лично по мне, так использовать индексы здесь совсем не обязательно. Дважды прогоняем наш список через цикл и находим минимальную(min) и максимальную(max) длину строк. Делаем третий цикл, прогоняем его с условием, что если длина перебираемой строки ==min ИЛИ == max - присваиваем эту строку переменной x, и break; цикл. System.out.println(x); Вауля!
llllllllll10 уровень, Red Planet
23 сентября, 18:43
куча действий, можно за один цикл найти мин и макс и их индексы и потом взять минимальный индекс из двух, это и будет первое вхождение.
edvard9849 уровень, златоуст
10 сентября, 16:55
нужные индексы можно в for-if получить, присвоив его значение другой переменной
Влад Савостиков15 уровень, Москва
8 сентября, 09:00
Если испытываете затруднения, то вот вам возможная идея решения (рабочая): 1. Создать список 2. Создать две переменные типа "строка", в которых будет храниться самая большая и самая маленькая строка 3. Заполняем список 4. Приравниваем наши строки нулевому элементу списка 5. Используя цикл проходим по списку и записываем в переменные самую большую строку и самую маленькую (используя .lenght() ) 6. Используя indexOf смотрим у какого элемента индекс меньше - тот и выводим
Alexander Mineyev8 уровень, Москва
27 августа, 21:48
вроде и не трудная задача, решение в голове быстро сложил, найти мин макс по длине, а потом сравнить индексы..... долго искал как индексы найти...нашел и решил в "в среде" задача решалась, а на сайте нет..... но почитав комменты решил просто через что быстрее попадется и потом обрываем цикл.... честно последний пункт подсмотрел...
Андрей8 уровень, Красноярск
22 августа, 10:31
Решил задачу двумя способами (не проверял пока) с добавлением двух переменных 1) String max/min и 2) int max/min, есть небольшая разница в коде. Вопрос: как правильней, с помощью String или int или без разницы? p/s: отправил на проверку вариант где String max/min, проверка в валидаторе на сайте пройдена успешно, но хотелось бы узнать ответ на вопрос. ещё p/s: Подумал, смотря на оба варианта и думаю что с int правильней в будущем, если например в цикле будет 100 500 циклов и не надо будет с String лишний раз делать length() в max.length(). Спасибо за задачу, заставила подумать.
Алексей8 уровень, Зима
пятница, 17:05
С int max/min у меня валидацию третий пункт не прорходит
Lllison17 уровень, Пенза
1 августа, 15:50
По какому то странному стечению обстоятельств эта задачка в идеи идет раньше чем предыдущие, поэтому промучилась сразу и с короткой и с длинной, но решила сама: 1. Создаем 2 переменные для хранения индексов максимальной и минимальной строк 2. Создаем 2 списка, первый для хранения строк, второй для хранения длин этих строк
ArrayList<String> list = new ArrayList<>();
 ArrayList<Integer> length = new ArrayList<Integer>();
3. Соответственно в цикле заполняем данные масивы (для второго использовала такую конструкцию)
length.add(list.get(i).length());
4.Ищем индекс максимальной и минимальной строк
indexMax = length.indexOf(Collections.max(length));
indexMin = length.indexOf(Collections.min(length));
5.Сравниваем значения полученных индексов и выводим на экран строку с наименьшим индексом
if (indexMax > indexMin)
            System.out.println(list.get(indexMin));
else
            System.out.println(list.get(indexMax));
Ринат12 уровень, Москва
13 августа, 14:06
не подскажешь, что за Collections в 4 пункте ?
Стас Курсиш8 уровень, Рига
8 сентября, 12:15
https://javarush.ru/groups/posts/1937-klass-collections
Nicha18 уровень, Тольятти
25 июля, 12:58
Потратил много времени но решил сам ) Задаём переменные для минимума и максимума, находим их как в предыдущих задачах. Чтобы найти строку которая будем первой, использовал цикл "если минимум равен длине строки или максимум равен длине строки" то выводим строку которая попалась :)
Иван16 уровень, Рязань
22 июля, 17:31
решал 1,5 часа, все нахер стер заново за 5 мин написал и все работает