powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / ArrayList Vs. LinkedList
19 сообщений из 19, страница 1 из 1
ArrayList Vs. LinkedList
    #35564259
2ak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Объясните плиз тупице когда лучше использовать ArrayList и LinkedList.

Смотрю Эккеля:

"The LinkedList also implements the basic List interface like ArrayList does, but it performs certain operations (insertion and removal in the middle of the List) more efficiently than does ArrayList. Conversely, it is less efficient for random-access operations."

Из него следует что если предпологается часто добавлять и удалять элементы в середину листа, то тогда лучше юзать LinkedList, а в остальных случаях ArrayList.

ИМХО, бред какой то. или я херово превел. Помогите плиз понять.
...
Рейтинг: 0 / 0
ArrayList Vs. LinkedList
    #35564295
Quadrix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все правильно. Оба класса реализуют интерфейс TList, только LinkedList и ArrayList основаны на разных структурах данных. Этим и объясняется особенность каждого из них. Если много операций добавления и удаления, то используй LinkedList, где для того, чтобы вставить элемент между двумя другими не требуется перемещать куски массива (списка). Но минусом является скорость индексного доступа к данным. В ArrayList структура данных жестче, но скорость доступа к данным выше.
...
Рейтинг: 0 / 0
ArrayList Vs. LinkedList
    #35564428
Самоловских Виталий aka Kefir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В первую очередь они отличаются набором интерфейсов. LinkedList реализует Queue и Deque, ArrayList нет.

Во вторую способом хранения. Массив или двунаправленный список. Разница:
1. Последовательный доступ: Сколько не тестировал, большой разницы нет;
2. Произвольный доступ: ArrayList предпочтительнее;
3. Последовательная запись: добавление в LinkedList требует фиксированного времени (все относительно), а вот в случае ArrayList, если размер списка превышает размер массива, то выделяется новый массив в 2 раза больше и все данные (на самом деле указатели, так что не особо страшно) переписываются в новый массив. Чисто теоретически, это может создать задержку на больших (несколько миллионов) размерах списка. Если заранее известен размер списка, то лучше его указать при создании, если не известен, то лучше использовать LinkedList. В последнем утверждении я сам, если честно, сомневаюсь.
4. Произвольная запись: ArrayList предпочтительнее;
5. Сортировка: сортировка происходит так: список копируется в массив и там происходит сортировка, потом результат копируется обратно в список. Скопировать из массива в массив быстрее, т.е. на сортировку ArrayList тратится времени меньше.

На мой вгляд лучшее руководство по коллекциям Java
Неплохое руководство на русском языке :)
...
Рейтинг: 0 / 0
ArrayList Vs. LinkedList
    #35566315
mikkri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самоловских Виталий aka KefirВ первую очередь они отличаются набором интерфейсов. LinkedList реализует Queue и Deque, ArrayList нет.
Но только не в Java 1.4

А так хороший вопрос, я его на собеседованиях стараюсь задавать. Не все понимают разницу, к сожалению.
...
Рейтинг: 0 / 0
ArrayList Vs. LinkedList
    #35566395
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АррэйЛист обёртка для массива. Предполагаю что пока размер буфера не меньше количество элементов все операции будут быстрее с АррэйЛистом.

сам чёт предпочитаю Линкед. Ну так просто вот предпочита. Название больше нравится.

Код: plaintext
Meo voto
...
Рейтинг: 0 / 0
ArrayList Vs. LinkedList
    #35566632
Самоловских Виталий aka Kefir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SarinАррэйЛист обёртка для массива. Предполагаю что пока размер буфера не меньше количество элементов все операции будут быстрее с АррэйЛистом.
ArrayList инициализируется массивом из 10 элементов. Поэтому если сразу ему не указать более или менее вменяемый размер, под него будет выделено памяти почти в 2 раза больше, чем требуется. Конечно, потом половина соберется, но осадок останется :) А так да, быстрее...
...
Рейтинг: 0 / 0
ArrayList Vs. LinkedList
    #35567078
skelet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikkri
А так хороший вопрос, я его на собеседованиях стараюсь задавать. Не все понимают разницу, к сожалению.
просто arraylist дурацкое название, вводит в заблуждение, без пол-литра и не поймёшь, что это аналог массива

берите пример с С++, там контейнеры названы правильно
массив - vector<>
список - list<>
...
Рейтинг: 0 / 0
ArrayList Vs. LinkedList
    #35567500
mikkri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skelet mikkri
А так хороший вопрос, я его на собеседованиях стараюсь задавать. Не все понимают разницу, к сожалению.
просто arraylist дурацкое название, вводит в заблуждение, без пол-литра и не поймёшь, что это аналог массива

берите пример с С++, там контейнеры названы правильно
массив - vector<>
список - list<>
ИМХО, не согласен. В Java принято вещи называть своими именами. Так List - это контракт списка, который можно реализовать разными способами.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
ArrayList Vs. LinkedList
    #38730866
sasha-ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2ak,

Я тут снял не большой ролик про ArrayList и LinkedList. Может кому будет полезно.
YouTube Video
...
Рейтинг: 0 / 0
ArrayList Vs. LinkedList
    #38731157
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sasha-ne,

"горантия времени" это что? А вот уважаемые товарищи Куксенко и Шипилёв заявляют, что нет никаких практических задач, в которых LinkedList имел бы хоть какое-то преимущество.
...
Рейтинг: 0 / 0
ArrayList Vs. LinkedList
    #38731167
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczА вот уважаемые товарищи Куксенко и Шипилёв заявляют, что нет никаких практических задач, в которых LinkedList имел бы хоть какое-то преимущество.
Они сказали, что на порядке 10k элементов может быть оправдано.
...
Рейтинг: 0 / 0
ArrayList Vs. LinkedList
    #38731228
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArrayList загрузится целиком в кеш - если он небольшой
и практически не возникнет кешмисов

При любых операция

У линкеда данные разбросаны по памяти и в кеш будут загружены не сразу
Кешмисы у линкеда приведут к просадке перфманса
...
Рейтинг: 0 / 0
ArrayList Vs. LinkedList
    #38731244
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01ArrayList загрузится целиком в кеш - если он небольшой
и практически не возникнет кешмисов

Зато может быть фалсшаринг :)
На чём LL и может выиграть.
...
Рейтинг: 0 / 0
ArrayList Vs. LinkedList
    #38731330
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey TominНа чём LL и может выиграть.

Есть бенчмарки ?
...
Рейтинг: 0 / 0
ArrayList Vs. LinkedList
    #38731335
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey TominЗато может быть фалсшаринг :)
На чём LL и может выиграть.
По-моему, там где false sharing критичен, LL вообще делать нечего.
...
Рейтинг: 0 / 0
ArrayList Vs. LinkedList
    #38731337
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Tominbuldozer01ArrayList загрузится целиком в кеш - если он небольшой
и практически не возникнет кешмисов

Зато может быть фалсшаринг :)
На чём LL и может выиграть.

Слушайте Алексей - мне кажется или фалсшаринг при многопоточном доступе возникает

Вы ArrayList с разных потоков без синхронизации юзаете ?
...
Рейтинг: 0 / 0
ArrayList Vs. LinkedList
    #38731359
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01Alexey Tominпропущено...
Зато может быть фалсшаринг :)
На чём LL и может выиграть.

Слушайте Алексей - мне кажется или фалсшаринг при многопоточном доступе возникает

Вы ArrayList с разных потоков без синхронизации юзаете ?

Как вариант- каждый поток пишет флаг в свою ячейку, а отдельный поток читает.
Вообще чисто теоретический совет, не более.
...
Рейтинг: 0 / 0
ArrayList Vs. LinkedList
    #38731360
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01Вы ArrayList с разных потоков без синхронизации юзаете ?
Ну, если на чтение, то почему нет?
...
Рейтинг: 0 / 0
ArrayList Vs. LinkedList
    #38731369
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Да соглашусь

Но я когда говорил про кешмисы и запись тоже имел ввиду
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / ArrayList Vs. LinkedList
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]