В начало списка

  • 4
  • Недоступна
Представьте, что люди записываются на консультацию, скажем, к дантисту, но очередь работает не как очередь, а как стек: последним записался, первым получил сверлом в зуб. Составим программу по мотивам этой неестественной ситуации: создадим список, и добавим в него 10 строк, но добавлять будем не в конец списка, а в начало.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (41)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Artembl49 уровень, Москва
10 марта, 19:40
Две лекции вперед промотать. Там есть пример кода как вставлять в начало списка.
Denis7 уровень
10 марта, 18:33
Удалить элемент: метод remove();
Дмитрий Ильин13 уровень, Москва
4 февраля, 11:00
я решил переписыванием элемента, без сдвигов списка, потом почитал что можно сдвигать, ну тоже как вариант , мне даже показалось так правильнее вышло :)
Dmitry13 уровень, Москва
21 января, 19:20
int n = 10;
n = list.size();
for (int i = 0; i < 10; i++) {
    String s = reader.readLine();
    list.add(list.size() - i, s);
}
И этот кусок кода правильный! Только почему на участке list.add(list.size() - i, s); не выдает ошибку - ведь при первой итерации у нас получается 10-й элемент, а должен 9-й (код соответственно list.add(list.size() - i-1, s);)?
ilgar8 уровень, Secaucus
1 февраля, 03:44
chtob dobavit v nachalo lista nado polzovatsa
list.add(0, reader.readline()) ;
vse prosto
qwaPPP16 уровень, Москва
18 февраля, 22:00
Там получается 10 элемент, у тебя при первом проходе цикла i = 0, соответственно ты от размера списка равному 10 отнимаешь 0. Конечно могу тупить, но вроде как все верно)
19 января, 15:48
Помогите, пожалуйста, объяснить мне что тут происходит: for (int i=0; i<10; i++){ strings.add(0,reader.readLine()); Мы же 10 раз записываем строку в массив в индекс 0, но я так понимаю, что я не прав, раз это верное решение.
ilgar8 уровень, Secaucus
1 февраля, 03:46
kajetsa 0 ne index a nachalo spiska. kajetsya mojno trenerovatsa dobavit 3 stroki s v nachalo podryad, a potom vivesti s indexom 1
1 февраля, 07:55
Да, ты прав это начало списка и весь список передвигается вниз. Я был тогда молод и глуп 12 дней назад)
Olexa10 уровень
6 января, 12:54
При решении задач на JavaRush все чаще прихожу к мнению: все гениальное - просто. Не надо прикручивать пятое колесо и сочинять сложно-подчиненную конструкцию, просто воспользуйся предложенным стандартным синтаксисом: "...Вставка элемента в начало массива: list.add(0, s)..." Просто поставь "0", и не мучай этот цикл. Опять полчаса времени потеряно впустую...
13Black33 уровень, Москва
15 декабря 2018, 08:53
ArrayList<String> strings = new ArrayList<String>(10);
        System.out.println(strings.size());
Подскажите почему я хочу создать сразу лист на 10 мест, а strings.size() все равно пишет 0
Artur41 уровень
25 декабря 2018, 19:33
В какой то из лекций говорилось, что size возвращает фактический размер списка, т.е. с уже заполненными полями, это одно из отличий списка от массива.
SanD28 уровень
13 июля 2018, 14:07
что значит и сразу проинициализируй ее? Это " = new ArrayList<String>()" ?
Никита8 уровень, Москва
26 июля 2018, 10:29
Да, именно так.
See Avogadro7 уровень, Москва
10 апреля 2018, 22:35
Было не очевидно, что:
strings.add(0, reader.readLine());
двигает весь массив вперёд и добавит новый элемент с индексом 0. Интересно, подскажите, а как заменить один элемент другим? Без сдвига всех остальных по индексам?
3ehbka15 уровень
18 мая 2018, 15:21
Думаю, здесь поможет .set()
Victor8 уровень
26 июня 2018, 13:54
Хм так вот оно что. А я голову ломал как сделать
Ruslan Zinovyev18 уровень
18 ноября 2017, 14:37
public static void main(String[] args) throws Exception {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        ArrayList<String> list = new ArrayList<>();
            for (int i = 0; i < 10; i++) {
                list.add(0, reader.readLine());
            }
            for (String s : list) {
                System.out.println(s);
            }
    }
14 марта 2018, 11:50
Я могу ошибаться, но по моему за счет необходимости применения интератора каждый раз производительность может быть немного меньше, чем при обычном цикле
See Avogadro7 уровень, Москва
10 апреля 2018, 22:29
Применения чего?
Сергей Никифоров8 уровень, Санкт-Петербург
12 апреля 2018, 18:45
императора, See Avogadro.......императора java
16 апреля 2018, 17:20
Именно его, каждый раз дергать...)
Vlad7 уровень, Казань
19 апреля 2018, 12:41
(String s : list) почему :
Ruslan Zinovyev18 уровень
20 апреля 2018, 11:00
Мне кажется если потери и есть, они не значительны.
Ruslan Zinovyev18 уровень
20 апреля 2018, 11:00
Потому что таков синтаксис для for each