Перестановочка подоспела

  • 4
  • Недоступна
Игры со списками — лучшее времяпрепровождение! Реклама так себе получается? Пожалуй, лучшая реклама средства языка программирования — его частое применение. Рекламируем списки, решая задачу: задаем числа m и n, печатаем n строк и заполняем ими список. После этого совершаем незатейливую манипуляцию: переставляем m первых строк в конец списка
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (116)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Ponin.F8 уровень, Санкт-Петербург
12 февраля, 18:21
Не придумал ничего более умного чем
повторить М раз:
добавить в конец нулевой элемент;
удалить нулевой элемент;
Есть другие, более простые/красивые варианты?
Владимир Павленко19 уровень, Москва
11 февраля, 21:09
Переменная список должна быть типа String
ArrayList<String> list = new ArrayList<>();
С Integer не приняли...
Ponin.F8 уровень, Санкт-Петербург
12 февраля, 18:15
Список строк, естественно это String
Olzh12 уровень
11 февраля, 08:36
Если ругается последний пункт, а у вас все верно, значит надо удалить лишние сиауты (напр: System.out.print("Enter the N: ");)
Nordis12 уровень, Санкт-Петербург
4 февраля, 21:46
Переставить M первых строк в конец списка. -- Я один не понимаю суть этого предложения? " Я твой дом , труба шатал " WTF?! Короче , я переделал требования которые были бы для меня понятны! Может и для других будет помощью. Требования: 1. Объяви переменную типа список строк и сразу проинициализируй ee. 2. Считай c клавиатуры числа N и M , добавить в список любые строки N раз! 3. Переместить(переставить) M строк из начала в конец списка! 4. Выведи список на экран, каждое значение с новой строки.
Richard Hendricks10 уровень, Екатеринбург
4 февраля, 16:37
а я чет напужался что remove() в цикле низя , а класс Итератор еще не понял и сделал цикл без list.remove() :-| ... использовал list.set
Дмитрий15 уровень
10 января, 01:41
Вообщем то послушайте мое решение. 1. Читаем числа 2. в цикле добавляем в конец списка слова. и тут же устанавливаем значение текущего индекса ну например "NULL". Т.е set(i, "NULL"); 3. Создает итератор Listiterator <String> it = list.Listiterator(); В цикле while (it.hasNext) { if (it.next().equals("NULL") it.remove(); } 4. Выводим на экран
S3R3N1TY22 уровень, Санкт-Петербург
13 декабря 2018, 17:58
Хорошая задача, вначале не вдуплял как работает точно методы add и remove, но потом через Дебаггер посмотрел все как устроено.
Juris 8 уровень
10 декабря 2018, 20:49
хороша задача - пришлось немного повозиться над индексами чтобы не использовать лишний раз цикл для удаления из динамического массива
Андрей19 уровень, Москва
11 ноября 2018, 15:49
А я не понял, почему в данном случае, когда мы в цикле и удаляем и добавляем элемент в список, НЕ возникает ошибка ConcurrentModificationException? Или эта ошибка возникает, только если работает конструкция for(s:array)? А если for(i=0; i<M; i++) - то такой ошибки нет?
Juris 8 уровень
10 декабря 2018, 20:51
пройдись по шагам и посчитай после каждого действия (add/remove) сколько в массиве элементов и всё сам поймешь
Мишаня17 уровень
6 ноября 2018, 13:56
Делаем М раз list.add(list.get(0)); list.list.remove(0); // а то не сразу понятно что от нас хотят
Максим15 уровень, Минск
30 декабря 2018, 20:25
либо сразу в одной конструкции: list.add(list.remove(0));
Viktor Kalyniuk17 уровень, Киев
2 февраля, 23:02
Максим и тут я офигел
Bo_Jackson9 уровень, Санкт-Петербург
6 февраля, 20:53
это вообще законно!?