ArrayList, LinkedList. Java собеседование

611 ratings | 25739 views


ArrayList, LinkedList. Java собеседование

ArrayList, LinkedList. Java собеседование 00:00 Cобеседование на позицию Java Developer 01:35 Коллекции в Java. 01:42 Разница между ArrayList и LinkedList 03:41 Преимущества и недостатки ArrayList 05:14 Преимущества и недостатки LinkedList 07:10 Вставка и удаление элементов 08:12 Что быстрее LinkedList или ArrayList? 09:05 Копирование элементов в ArrayList. Метод arraycopy в ArrayList 09:45 Поиск элемента в LinkedList и в ArrayList 10:48 Разминка для ума. Задание Хотите повлиять на темы сюжетов? Вам сюда Я в ВК Группа в ВК Опрос в группе Всем привет. Меня зовут Александр. Я собираюсь отснять серию роликов посвященных прохождению собеседований на работу в сфере IT и в частности на позицию Java developera - кем я и являюсь. Эти ролики в основном рассчитаны на начинающих разработчиков и возможно для тех, кто уже имеет некоторый опыт, но хотел бы освежить свои знания перед предстоящим собеседованием. Я заметил что в большинстве своем все вопросы повторяются. Наиболее часто задаваемые я и собираюсь разобрать. Конечно же все учесть не получится, но то о чем я буду говорить поможет вам найти ответы самостоятельно. Также если вы столкнулись с вопросами которые я здесь не разобрал и они встречаются достаточно часто, то я в следующих видосах постараюсь их разобрать. Посещая собеседования в различных фирмах я заметил что самая часто встречающаяся тема это коллекции. Поэтому начать я хочу с них. Расскажите в чем разница между ArrayList и LinkedList Это вопрос из разряда тех, ответ на который, должен знать каждый. Если вы не знаете то оставайтесь дома и почитайте что-нибудь по теме. К собеседованию вы не готовы! Основное разница заключается в том что эти два списка имеют различную реализацию. ArrayList реализован на основе массива, а LinkedList на основе двусвязного списка. Особенности реализации дают нам те или иные преимущества и недостатки. Расскажите про недостатки и плюсы ArrayList ArrayList - то что в основе массив это нам дает как плюсы так и минусы. Плюс это возможность получать доступ к элементам по индексу за константное время. А минусом будет то что в Java все массивы имеют фиксированный размер. Следовательно мы не можем добавлять элементы бесконечно. (В отличие от LinkedList где подобной проблемы нет) Когда количество элементов в ArrayList превышает размер массива лежащего в основе, происходит создание нового массива и перезапись туда всех элементов старого массива + новый. Как вы понимаете это замедляет операцию вставки. Несмотря на это вставка в конец списка происходит в среднем за константное время. С удалением последнего элемента также все просто. Оно выполняется за константное время.

Comments to the video: ArrayList, LinkedList. Java собеседование

Николай Медведев 6 months ago
Как ты забавно пытаешься руками это показать. Иллюстрировать впадлу?)))
Stephan Karsakov 10 months ago
Наши будто вечно - ничего нормально не могут сделать. Смотрите ребята лучше индийцев/янки. Они и нарисуют и растолкуют толково и примеры отлично покажут. А эти видео из разряда: сам иду на джуна, потренируюсь говорить, заодно и видео запишу.
Дмитрий Шелемех 8 months ago
я бы не стал мастерить выводы по скиллу говорить, о том джун либо не джун. Похоже что чувак весьма желал куцее видео записать, типа если длинноватое, то никто не поглядит.
Кирилл Ломовской 11 months ago
Спасибо за такие классные видео, всё понятно, однако откуда такие люд берутся которые всё знают, какие книжки мне декламировать, что бы такие тонкости выяснить вообщем( Алгоритм удаления близлижайших объектов из ArrayList пришёл в голову самый тупоумный for(int i = старовый_элемент; i <= последний_элемент; i++)) выслать i элеиент либо for(int i = старовый_элемент; i >= последний_элемент; i--)) выслать i элеиент однако судя по тому будто это работает это самый не действенный метод
Николай Власов 1 year ago
хули мычишь,блядина создатель?
Павел Мельников 2 years ago
я запутался. ArrayList обладает линейным временем прибавления частей в середину, т.к. необходимо сдвигать се элементы поочередно. LinkedList - неизменным, т.к. необходимо попросту перекинуть связи. Но! Сначала необходимо добраться до подходящего элемента, для чего нужно перебрать поочередно некое число частей с основы цепочки, поэтому пора доступа к элементу в LinkedList зависит от общего кол-ва частей. Получается, прибавление элемента в середину состоит из 2-ух операций: отыскать подходящий элемент и добавить новоиспеченный. Но т.к. пора поиска подходящего элемента линейно, то пора прибавления не может быть неизменным. Чем тогда LinkedList лучше ArrayList в плане прибавления в середину?
nikro 1 year ago
По поиску конечно этак и кушать необходимо отыскать элемент в начале, однако не необходимо сдвигать массив, попросту перезаписать пару ссылок, а в арейлисте необходимо подвигать массив потом удаления либо прибавления в середину.
dukenuclear 2 years ago
На самом деле обмолвка наверняка с 5:14 про LinkedList - реализация базирована не на массиве, а на ArrayList`е ? Может все-таки - не на массиве, а на двусвязном перечне? однако это этак чисто мое ИМХО.
Богдан Тимощенко 2 years ago
а примеры можно где то поглядеть?
Stanislav Yusko 2 years ago
Вопрос: отчего доступ к элементу массива происходит за постоянное пора?
Stanislav Yusko 1 year ago
вообщем меня заинтересовывало будто работает модель памяти в java, а то что к нему по номеру можно адресоваться не разъясняет этого, однако все равно благодарю)
N0TARGET 2 years ago
поэтому что он находится под определенным номером, к которому сходу можно адресоваться, а не перебирать рандомное число частей
Андрей Шишкин 2 years ago
Видео глядеть нереально. Текст чтоли приготовляй перед записью. И опечаток тьма в текстах. Да и вообщем не советую обучаться у этого товарища. Лучше RTFM.
Простой Человек 2 years ago
Умница! суперлайк )
Саша Матус 3 years ago
Не сдвигать правую доля любой один на лево потом удаления 1-го элемента а поначалу почистить все что необходимо а позже за одинешенек заход подвинуть правую доля на лево на число удаленных частей.
Юра Шамардин 3 years ago
6:11 елементам = элементам
Nastja Synelnyk 3 years ago
LinkedList односвязный перечень!
TT TTT 3 years ago
+Nastja Synelnyk дама программер? WTF???
Будников Александр 3 years ago
Посмотри исходники.
Будников Александр 3 years ago
Двусвязный
Андрей Куфтачев 3 years ago
+Ramil Magerramov ну-ка вот в том то и дело, что он двусвязный. И другим быть не может! Речь шла конкретно про LinkedList.
Ramil Magerramov 3 years ago
+Андрей Куфтачев Односвязный - означает любой элемент перечня показывает лишь на одинешенек из примыкающих частей предшествующий либо последующий. Двусвязный - означает любой элемент перечня показывает на оба примыкающих элемента - и предшествующий и последующий. Замкнутый(либо кольцевой) значит что 1-ый элемент перечня связан с последним. Если перечень разомкнутый - это означает, что связи меж первым и последним элемпнтами отсутствует. Честно говоря я не помню будто реализован LinkedList в Java по дефолту. Подозреваю что это будто мало-мало двусвязный по другому некие способы бы работали очень медлительно и неэффективно. Возможно я ошибаюсь. Кто отлично в теме разбирается, изволь, исправьте.
tankerxyz 3 years ago
8:40 - промах гОрантия
tankerxyz 3 years ago
вся сущность  while(1) cout << бла-бла-бла, аааааа,
- - 3 years ago
Это я запутался на 6:58, либо всё же не я?
- - 3 years ago
Написано O(n), говоришь O(n), а в конце бац - и O(1) О_о
Dmitry Zhelezko 3 years ago
Добавь зрительное отображение того, что ты обяъсняешь (картинки либо рисуй находу) - 1 один узреть стоит многих один услышать. А то, будто не радиофизик совершенно :)
Hobby Shopping 4 years ago
Спасибо за видео. Очень любопытно.
Spacemaster 4 years ago
С линкедЛистом обусловься. Сначала говоришь одно, позже другое. Только запутал
Spacemaster 4 years ago
Про пора доступа
Будников Александр 4 years ago
Привет) Поясни где я противоречу? 
Какая Разница 4 years ago
у вас опечатка в слове гарантия.
Serhii Dotsenko 4 years ago
видать что учил, однако ещё не совершенно уверен )) однако за видео, благодарю!
Будников Александр 4 years ago
+Сергій Доценко Спасибо, за подписку) и комментарий)
Andrei Petrov 4 years ago
arrayList.subList(from, to).clear();
Sergei Stepanov 3 years ago
+Будников Александр к
Будников Александр 4 years ago
+Andrei Petrov Спасибо что просветил)
Andrei Petrov 4 years ago
+Будников Александр Привет) Вобщем под копотом тоже самое и произойдёт.
Будников Александр 4 years ago
+Andrei Petrov Привет). я малость другое имел ввиду. К огорчению я не разбирал то будто будет производиться arrayList.subList(from, to).clear(); я выложил ответ во втором сюжете.