Это, извините, bullshit. Да, удаление может быть проблемой. А вот замена на содержимое /dev/zero функционально идентична и не создает проблемы фрагментации.
А grow тут не вызовется. Если использовать конструктор с указанием размера, то память занимается сразу (при дефолтном конструкторе — при добавлении первого объекта). Расти ему незачем — места хватает. И даже arraycopy будет вызван только на реально занятом диапазоне (то есть на нулевом).
Это довольно опасный подход, и его не зря не допускает стандартный механизм. Если очень надо — можно сделать свою реализацию путем банального копипаста и вырезания проверки на комодификацию.
Дело в том, что для полного абзаца обычно хватает одного бутылочного горлышка. А если их достаточно много, а код имеет большое число зависимости осложненное многопоточностью, то всё становится очень печально, потому что часто бывает непросто определить даже сам источник проблем. И просто консультацией тут не обойтись, обычно нужна полноценная ревизия кода.
Надо отметить, что get(i) в ArrayList будет работать даже быстрее итератора, там из накладных расходов всего одна проверка на выход за границы массива. А вот в LinkedList всё плохо, каждый раз надо идти по цепочке.
Это не всегда грязные хаки. Хайлоад требует хорошего понимания внутренних механизмов. Например чтобы неправильная коллекция или невинный replace в строковой переменной, под которым оказывается спрятан жуткий регэксповый механизм, не создали катастрофического бутылочного горлышка. Я имел опыт работы с творением таких двухнедельных праграмистав в реальных условиях. Написать в принципе работающий код и код, без проблем работающий в продакшене — две большие разницы.
ArrayList имеет внутри собственно array, который имеет ограниченный размер. Если не влезает — приходится пересоздавать массив и копировать содержимое. А добавление в начало или конец LinkedList делается за фиксированне время. Подозреваю, отсюда и разница. Если создавать ArrayList с запасом он будет побыстрее, потому что не нужна обёртка.
LinkedList представляет собой неиндексированную цепочку, которая быстро работает при операциях с концами цепочки. Оптимальное использование — очередь, на что намекает имплементация интерфейса Deque.
ArrayList представляет собой массив в обёртке, поэтому лучше при необходимости произвольного доступа.
В реальном мире изучение основ нового языка занимает пару недель, и через 6-12 месяцев уже никто не догадается, что вы не занимались этим всю свою карьеру.
Это и верно, и нет. После двухнедельного изучения процесс кодинга будет представлять собой танец на граблях, которых полно в любом языке. После 12 месяцев можно будет уверенно кодить стандартные механизмы, но когда доходит до задач, требующих хорошего знания слабодокументированных или попросту недокументированных особенностей, всё становится куда сложнее.
Чтобы требовать такого уровня владения свободой для принятия решения нужно иметь веское основание. Таким основанием обычно может быть только риск. А чем рискуем-то? Просьба приводить только примеры риска большего, чем имеющийся в допустимых действиях.
Без этого ответа говорить об уровне требуемого знания нельзя. Алсо, у нас тут замкнутый круг: давать эту самую информацию тоже нельзя…
Насчет рабства — я бы с вами поспорил. В условиях, например, материально-технической культуры средневековой Европы использование рабов экономически оправдано куда больше, чем свободных йоменов — история это отлично показывает, свободные проигрывают конкурентную гонку крепостным.
Смотря для кого. Для государства — возможно. И только в краткосрочной перспективе при условии консерватизма в культуре и науке. Но давать моральную оценку из другой материально-технической культуры не совсем корректно.
Один принципиальный момент. Чтобы требовать такого уровня владения свободой для принятия решения нужно иметь веское основание. Таким основанием обычно может быть только риск. А чем рискуем-то? Просьба приводить только примеры риска большего, чем имеющийся в допустимых действиях.
Рабство, крепостная зависимость и гонения на инакомыслящих оправданы вовсе не культурой. Их разрешение ведет к тяжелым экономическим и социальным проблемам.
Вы как раз ОТНИМАЕТЕ чужую свободу. В первую очередь свободу самих детей.
Я задал конкретные вопросы, но, как обычно, получил в ответ кучу голых эмоций.
Вот именно, что физические повреждения. Этот вопрос всегда обсуждается примерно так:
— Где вред?
— Если отыметь ребенка конём, то ребенок умрет!
— А если коня ребенком?
— Это аморально!
То есть вопрос физического вреда не является неотъемлемой частью и может быть опущен.
Остается вред моральный. А моральный вред вообще штука невнятная… И зависит в первую очередь от морали. Грубо говоря, чтобы получить боль от разрыва в шаблоне, нужен шаблон. И тут получается порочный круг — детям тщательно создают этот самый шаблон, а потом оберегают их от оного шаблона разрыва до определенного возраста.
Природа как раз никакой границы не проводила. Совсем. Есть куча исследований о том, что секс имеет не только репродуктивную, но и социальную функцию. И во второй ипостаси никаких возрастных ограничений природа не предусматривала.
Да там в переносных значениях всё, что не между супругами и в миссионерской позе. Это повод это всё запрещать? И как я уже сказал — это христианство, ну максимум авраамические религии.
Вы, как обычно, путаете изнасилование и совращение. Давайте не будем про первое, это отдельная статья, куда отлично впишется отягчающим то, что жертва несовершеннолетняя. Давайте про второе.
Ну, не без того. Но я действительно считаю нынешнюю ситуацию театром абсурда. Согласен, что детей надо защищать. Но не так, чтобы от этой защиты в итоге больше страдали они сами. И не от выдуманных опасностей.
Вы бы ссылку на источник привели, что ли. А то я вот много чего читал, и там было противоположное в основном.
А еще цивилизация не кончается за пределами христианства, а за этими пределами вообще всё интересно.
А аргумент «вы бы хотели» тут и вовсе некорректен. Поскольку ребенок является недееспособным, решения за него имеет право принимать опекун. Основанием для запрета принятия такого решения является вредность этого решения в каком-либо смысле. И вот тут самое интересное — принципиальная физическая вредность (хоть сколько-то превосходящая вредность от средней травмоопасности видов спорта, которые для детей вполне поощряются) в данном случае не доказана и не имеет даже вменяемых оснований для предположения, психическая вредность выше скорее от текущей практики (увы, с вменяемыми исследованиями тут по понятным причинам плохо). Только чистое давление на эмоции и инстинкты родителя и собственника.
LinkedList представляет собой неиндексированную цепочку, которая быстро работает при операциях с концами цепочки. Оптимальное использование — очередь, на что намекает имплементация интерфейса Deque.
ArrayList представляет собой массив в обёртке, поэтому лучше при необходимости произвольного доступа.
Это и верно, и нет. После двухнедельного изучения процесс кодинга будет представлять собой танец на граблях, которых полно в любом языке. После 12 месяцев можно будет уверенно кодить стандартные механизмы, но когда доходит до задач, требующих хорошего знания слабодокументированных или попросту недокументированных особенностей, всё становится куда сложнее.
Чтобы требовать такого уровня владения свободой для принятия решения нужно иметь веское основание. Таким основанием обычно может быть только риск. А чем рискуем-то? Просьба приводить только примеры риска большего, чем имеющийся в допустимых действиях.
Без этого ответа говорить об уровне требуемого знания нельзя. Алсо, у нас тут замкнутый круг: давать эту самую информацию тоже нельзя…
Смотря для кого. Для государства — возможно. И только в краткосрочной перспективе при условии консерватизма в культуре и науке. Но давать моральную оценку из другой материально-технической культуры не совсем корректно.
Рабство, крепостная зависимость и гонения на инакомыслящих оправданы вовсе не культурой. Их разрешение ведет к тяжелым экономическим и социальным проблемам.
Вы как раз ОТНИМАЕТЕ чужую свободу. В первую очередь свободу самих детей.
Я задал конкретные вопросы, но, как обычно, получил в ответ кучу голых эмоций.
Вот именно, что физические повреждения. Этот вопрос всегда обсуждается примерно так:
— Где вред?
— Если отыметь ребенка конём, то ребенок умрет!
— А если коня ребенком?
— Это аморально!
То есть вопрос физического вреда не является неотъемлемой частью и может быть опущен.
Остается вред моральный. А моральный вред вообще штука невнятная… И зависит в первую очередь от морали. Грубо говоря, чтобы получить боль от разрыва в шаблоне, нужен шаблон. И тут получается порочный круг — детям тщательно создают этот самый шаблон, а потом оберегают их от оного шаблона разрыва до определенного возраста.
Природа как раз никакой границы не проводила. Совсем. Есть куча исследований о том, что секс имеет не только репродуктивную, но и социальную функцию. И во второй ипостаси никаких возрастных ограничений природа не предусматривала.
Вы, как обычно, путаете изнасилование и совращение. Давайте не будем про первое, это отдельная статья, куда отлично впишется отягчающим то, что жертва несовершеннолетняя. Давайте про второе.
Ну, не без того. Но я действительно считаю нынешнюю ситуацию театром абсурда. Согласен, что детей надо защищать. Но не так, чтобы от этой защиты в итоге больше страдали они сами. И не от выдуманных опасностей.
А еще цивилизация не кончается за пределами христианства, а за этими пределами вообще всё интересно.
А аргумент «вы бы хотели» тут и вовсе некорректен. Поскольку ребенок является недееспособным, решения за него имеет право принимать опекун. Основанием для запрета принятия такого решения является вредность этого решения в каком-либо смысле. И вот тут самое интересное — принципиальная физическая вредность (хоть сколько-то превосходящая вредность от средней травмоопасности видов спорта, которые для детей вполне поощряются) в данном случае не доказана и не имеет даже вменяемых оснований для предположения, психическая вредность выше скорее от текущей практики (увы, с вменяемыми исследованиями тут по понятным причинам плохо). Только чистое давление на эмоции и инстинкты родителя и собственника.