Size: a a a

2020 December 16

Э

Эд in learn.java
Alex K.
Добрейший вечерочек!
Рассудите задачу. Есть условный компьютер с ArrayList, есть такой же компьютер с LinkedList.
Если мы начнем заполнять оба листа до бесконечности, то на каком компьютере раньше кончится память?
Условия будем считать идеальными.
Что значит раньше? По времени на аналогичных машинах и не зависимо, сколько эл-тов положить?
источник

AK

Alex K. in learn.java
Эд
Что значит раньше? По времени на аналогичных машинах и не зависимо, сколько эл-тов положить?
Да, условно бесконечное кол-во элементов, условия одинаковые полностью, машины одинаковые, заполнение одинаковыми бесконечными условно данными, в один момент времени. Добавление по 1 элементу производится
источник

GV

Gukov Viktor in learn.java
...
Пардон забыл что линкедлист двунаправленный*
Все равно arraylist
источник

Э

Эд in learn.java
Alex K.
Да, условно бесконечное кол-во элементов, условия одинаковые полностью, машины одинаковые, заполнение одинаковыми бесконечными условно данными, в один момент времени. Добавление по 1 элементу производится
максимум Integer.MAX
источник

DC

Denis Chikanov in learn.java
Alex K.
Добрейший вечерочек!
Рассудите задачу. Есть условный компьютер с ArrayList, есть такой же компьютер с LinkedList.
Если мы начнем заполнять оба листа до бесконечности, то на каком компьютере раньше кончится память?
Условия будем считать идеальными.
Есть подозрение, что ответ зависит от типа объектов в коллекции, конкретного количества доступной памяти и конкретного количества элементов
источник

AK

Alex K. in learn.java
Эд
максимум Integer.MAX
Это не важно, у нас условно бесконечность
источник

D

Dave in learn.java
лист может во все дыры памяти запихнуть
источник

ШП

Шурок Петров... in learn.java
Alex K.
Это не важно, у нас условно бесконечность
Если бесконечность, предполагаю что линкед будет больше
источник

AK

Alex K. in learn.java
Denis Chikanov
Есть подозрение, что ответ зависит от типа объектов в коллекции, конкретного количества доступной памяти и конкретного количества элементов
Типы идентичны, как и кол-во объектов, память на двух машинах одинаковая. Вопрос, какая заполнится первее полностью
источник

DC

Denis Chikanov in learn.java
Alex K.
Да, условно бесконечное кол-во элементов, условия одинаковые полностью, машины одинаковые, заполнение одинаковыми бесконечными условно данными, в один момент времени. Добавление по 1 элементу производится
Вот только не так важно, что добавляешь по одному, так как аррэйлист всегда расширяется с фактором 1.5
источник

D

Dave in learn.java
Dave
лист может во все дыры памяти запихнуть
Линкед
источник

DC

Denis Chikanov in learn.java
Alex K.
Типы идентичны, как и кол-во объектов, память на двух машинах одинаковая. Вопрос, какая заполнится первее полностью
Да понятно, что идентичны, но для конкретных значений количества памяти, размера объекта, размера коллекции ответ "кто первый" будет отличаться, навскидку.
источник

VS

Vlad S in learn.java
Denis Chikanov
Вот только не так важно, что добавляешь по одному, так как аррэйлист всегда расширяется с фактором 1.5
Если речь про память системы, ArrayList при расширении создаёт новый массив и копирует в него все значения из старого, затем старый удаляет, значит в какой-то момент времени в системе два ArrayList, или это не так работает?
источник

AK

Alex K. in learn.java
У нас идёт сравнение двух машин, одинаковых абсолютно, выполняющих одну и ту же функцию, просто использующих разные виды коллекции(в данном случае Аррай и Линкед). Машина с какой коллекцией первая заполнит свою память
источник

AK

Alex K. in learn.java
Vlad S
Если речь про память системы, ArrayList при расширении создаёт новый массив и копирует в него все значения из старого, затем старый удаляет, значит в какой-то момент времени в системе два ArrayList, или это не так работает?
Но нода линкедЛиста ведь весит больше
источник

DC

Denis Chikanov in learn.java
Alex K.
Но нода линкедЛиста ведь весит больше
А если у тебя объект в коллекции КАЖДЫЙ весит 100 мегабайт, тебе плевать на накладные расходы ноды.
источник

DC

Denis Chikanov in learn.java
Alex K.
Но нода линкедЛиста ведь весит больше
Ты задал вопрос, но ты ожидаешь получить конкретный ответ. Почему ты сразу не задаёшь вопрос с честным "я считаю, что это линкедлист, прав ли я, объясните"?
источник

AK

Alex K. in learn.java
Denis Chikanov
А если у тебя объект в коллекции КАЖДЫЙ весит 100 мегабайт, тебе плевать на накладные расходы ноды.
Возьмём Врапперы условно
источник

DC

Denis Chikanov in learn.java
Alex K.
Возьмём Врапперы условно
И вот у тебя уже "условно" ограничения появляются, я с самого начала тебе пишу, что для разных КОНКРЕТНЫХ исходных данных будут разные ответы.
источник

AK

Alex K. in learn.java
Denis Chikanov
Ты задал вопрос, но ты ожидаешь получить конкретный ответ. Почему ты сразу не задаёшь вопрос с честным "я считаю, что это линкедлист, прав ли я, объясните"?
Лично я считаю, что линкедЛист, но я понятия не имею, что вернее. Вроде бы АррайЛист делает х1.5 размера по памяти, но Линкеда объекты весят больше, при равном заполнении, я считаю что линкед выиграет. Но мне интересно мнение экспертов в этом вопросе, чтобы докопаться до истины
источник