
Yan?
21.07.2017
16:08:19
LinkedList-ом кто пользуется в боевых проектах? Есть прирост произволительности по сравнению с ArrayList-ом?

Nick
21.07.2017
16:09:16

guga
21.07.2017
16:09:17

Митко Соловец?
21.07.2017
16:09:41

Google

Yan?
21.07.2017
16:09:52

Igor
21.07.2017
16:09:55

Yan?
21.07.2017
16:10:12
Просто на хабре пишут Объяснение простое: ArrayList внутри себя использует System.arrayCopy — нативную функцию, которая отрабатывает на удивление шустро. В то же время для LinkedList'а приходится переопределять несколько указателей, но это не самое главное. Все эти указатели на предыдущего и следующего обходятся сборщиком мусора. Из-за этого растет время, необходимое для стадии маркинга, а с учетом того, что в одном списке оказываются элементы из разных поколений, вся процедура затягивается еще больше.

Nick
21.07.2017
16:11:01
бггг
обхобятся не указатели в листе, а вообще все обьекты в куче начиная от рут элементов

Igor
21.07.2017
16:11:48

Митко Соловец?
21.07.2017
16:12:16

Yan?
21.07.2017
16:12:50
В LinkedList итерирование займет больше, чем копирование части массива в ArrayList. Это утверждение верно как минимум для <=1024 элементов

Митко Соловец?
21.07.2017
16:13:09
можно не копировать
а сразу скинуть статью

guga
21.07.2017
16:13:26

Nick
21.07.2017
16:13:32

guga
21.07.2017
16:13:37
джава же срала на ссылочную прозрачность

Google

guga
21.07.2017
16:13:43
так что не с рут элемента

Yan?
21.07.2017
16:13:49
https://habrahabr.ru/post/127864/

Nick
21.07.2017
16:14:17

guga
21.07.2017
16:14:23
head

Nick
21.07.2017
16:14:37
а в моем нет
я про граф при сборке мусора

guga
21.07.2017
16:14:52
лол

Nick
21.07.2017
16:14:53
к примеру статики там, или тред стек

guga
21.07.2017
16:14:55
прости не понял тебя
привык что его называют рут сетом
он из контекста мог бы и понять

Aleksander
21.07.2017
16:20:19

Митко Соловец?
21.07.2017
16:22:48
https://habrahabr.ru/post/333626/
угадайте какого года статья

Yan?
21.07.2017
16:25:44
этого
>Начинающий Java-разработчик

Nick
21.07.2017
16:26:13

guga
21.07.2017
16:26:21
отличная статья

Aleksander
21.07.2017
16:26:32

Nick
21.07.2017
16:27:13
Чем ?
итерирование по arraylist быстрее, операции вставки вконец не делает сдвигов, поэтому затраты у тебя будут только на увеличение листа

Google

Nick
21.07.2017
16:27:19
+ по памяти во много раз лучше

Aleksander
21.07.2017
16:28:04
По памяти arraylist ресайзится каждый раз в полтора раза, а линкед всегда фитится под размер

Nick
21.07.2017
16:28:29

Aleksander
21.07.2017
16:28:50

Yan?
21.07.2017
16:28:59

Nick
21.07.2017
16:29:05
так вот это довольно редкая операция
да и речь про то, сколько линкд лист тратит на внутренние структуры

Yan?
21.07.2017
16:29:50
Так arrayList самый выйграшный вариант?

Nick
21.07.2017
16:30:43
все зависит от задач

Aleksander
21.07.2017
16:31:49
А если представим, что у нас очень много элементов. И при добавлении аррейлист отресайзился в полтора раза и забил дофига памяти на хранение пустых элементы, и далее мы перестали добавлять в него.
Конечно, это редкий кейс

Nick
21.07.2017
16:32:13

Aleksander
21.07.2017
16:32:52
Но если возьмём полный аррей лист и аналогичного размера линкед лист - они примерно одинаково будут весить

Nick
21.07.2017
16:33:17
нет ж

Aleksander
21.07.2017
16:33:39
Ща, у меня была статья

Victor
21.07.2017
16:33:50
У linkedlist фрагментация намного-намного выше

Nick
21.07.2017
16:33:54
да че мне ваша статья, посчитайте сами

Aleksander
21.07.2017
16:34:13
От ibm!

Google

Nick
21.07.2017
16:34:42
array list хранит одну ссылку а linked 3 только внутри node

Aleksander
21.07.2017
16:35:21

Nick
21.07.2017
16:35:41

Aleksander
21.07.2017
16:38:02
xD

Nick
21.07.2017
16:40:43
уточни еще и битность системы

Aleksander
21.07.2017
16:41:09
Но!!!! Пустой лл весит 48 байт, а ал 88. Там 32 бита
вот собственно https://www.ibm.com/developerworks/ru/library/j-codetoheap/

Admin
ERROR: S client not available

Andrey
21.07.2017
16:43:15
/stat@combot

Combot
21.07.2017
16:43:17
combot.org/chat/-1001043090457

Victor
21.07.2017
16:43:51

Aleksander
21.07.2017
16:44:36
Я думаю с дефолт капасити в 10 элементов
т.е. 1 вариант

Victor
21.07.2017
16:45:39
А, там в статье видно, что массив из 10 элементов. Да.

Nick
21.07.2017
16:45:47
тебе правильно сказали, пустой arraylist тоже меньше весит)

Aleksander
21.07.2017
16:46:28
Ну да. Короче меня разнесли в пух и прах. Пойду ctrl r по проекту делать

Victor
21.07.2017
16:50:12
И вот даже для создания очереди, тоже рекомендуют не LL использовать, а брать ArrayDeque.

Aleksander
21.07.2017
16:50:46

Google

Aleksander
21.07.2017
16:51:03
Но в какой-то момент с лл меня переклинило

Nick
21.07.2017
16:51:35

Yan?
21.07.2017
16:53:14

Moth
21.07.2017
16:53:38
всем привет

Aleksander
21.07.2017
16:53:52

Moth
21.07.2017
16:54:20
Кто может помочь разобрать код, пару строчек тут
никто не может? элементарный код

Aleksander
21.07.2017
16:56:00
То чувство когда единственный человек в проекте напихал линкед листов - это я

Yan?
21.07.2017
16:57:50
Так получается что вообще все коллекции на основе LL нинужны?

Moth
21.07.2017
16:58:07
alo, yoba

Aleksander
21.07.2017
16:59:28

Yan?
21.07.2017
17:00:41

Aleksander
21.07.2017
17:01:09
Да я про него
Нет. Тут свойства хештаблицы и порядка вставки и это очень полезно

Yan?
21.07.2017
17:01:37

Aleksander
21.07.2017
17:01:45
Да я про него
Доступ по ключу за o(1) в лучшем случае. И итерация в порядке вставки

Luger
21.07.2017
17:01:45
alo, yoba
уже б скинул. или сюда загляни : https://t.me/javastart

Aleksander
21.07.2017
17:02:21

Yan?
21.07.2017
17:02:27

guga
21.07.2017
17:02:33

Yan?
21.07.2017
17:02:45
Так что выйгрыш не особо крутой
А ПАМЯТЬ ест!