HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>ArrayList - это одна из нескольких готовых реализаций интерфейса List. Для хранения данных ArrayList, использует массив, что с одной стороны позволяет работать быстро в случае необходимости обращаться к произвольным элементам по индексу, с другой, работает медленно, в том случае, если нам нужно добавить или удалить элемент списка. Связано это с тем, что массивы имеют фиксированную длину и для изменения размера списка придется создавать новый массив и копировать в него данные из старого.</p>
1 <p>ArrayList - это одна из нескольких готовых реализаций интерфейса List. Для хранения данных ArrayList, использует массив, что с одной стороны позволяет работать быстро в случае необходимости обращаться к произвольным элементам по индексу, с другой, работает медленно, в том случае, если нам нужно добавить или удалить элемент списка. Связано это с тем, что массивы имеют фиксированную длину и для изменения размера списка придется создавать новый массив и копировать в него данные из старого.</p>
2 <p>Если произвольный доступ к списку нас не волнует, а мы больше выполняем вставку и удаление новых элементов в список, то тогда эффективнее использовать LinkedList. Эта реализация списка основана на структуре данных называемой двунаправленный список.</p>
2 <p>Если произвольный доступ к списку нас не волнует, а мы больше выполняем вставку и удаление новых элементов в список, то тогда эффективнее использовать LinkedList. Эта реализация списка основана на структуре данных называемой двунаправленный список.</p>
3 <p>Внутри это выглядит примерно так:</p>
3 <p>Внутри это выглядит примерно так:</p>
4 <p>В этой структуре элементы связаны друг с другом через ссылку на следующий и предыдущий элемент. Это рождает два следствия:</p>
4 <p>В этой структуре элементы связаны друг с другом через ссылку на следующий и предыдущий элемент. Это рождает два следствия:</p>
5 <ul><li>Произвольный доступ к элементу выполняется относительно долго, так как, в отличие от массивов, в двунаправленном списке придется перебирать элементы по одному до тех пор, пока мы не придем к нужному. Например, если мы обращаемся к элементу под индексом 5, то внутри LinkedList будет выполнено пять операций по извлечению следующего элемента.</li>
5 <ul><li>Произвольный доступ к элементу выполняется относительно долго, так как, в отличие от массивов, в двунаправленном списке придется перебирать элементы по одному до тех пор, пока мы не придем к нужному. Например, если мы обращаемся к элементу под индексом 5, то внутри LinkedList будет выполнено пять операций по извлечению следующего элемента.</li>
6 <li>Добавление новых элементов работает быстро и эффективно. Нам не нужно ничего заново создавать, как в случае с массивами. Достаточно поменять указатель на следующий и предыдущий элемент, так чтобы они ссылались на вновь добавленный.</li>
6 <li>Добавление новых элементов работает быстро и эффективно. Нам не нужно ничего заново создавать, как в случае с массивами. Достаточно поменять указатель на следующий и предыдущий элемент, так чтобы они ссылались на вновь добавленный.</li>
7 </ul><p>Для более глубокого понимания темы мы рекомендуем просмотреть видео лекцию, которая является дополнительным материалом к данному курсу.</p>
7 </ul><p>Для более глубокого понимания темы мы рекомендуем просмотреть видео лекцию, которая является дополнительным материалом к данному курсу.</p>
8 <h2>Рекомендуемые программы</h2>
8 <h2>Рекомендуемые программы</h2>