• Пример использования связного списка?

    Artem_zin
    @Artem_zin
    Мм, а ведь про сравнение ссылок — вы правы, хотя скорее всего операция удаления скомпенсирует этот провал с лихвой :)

    В общем, мы неплохо поговорили, предлагаю закрыть дискуссию
  • Пример использования связного списка?

    Artem_zin
    @Artem_zin
    Удалять в примере со слушателями надо не по индексу а по ссылке на объект, будет последовательный перебор пока не найдется equals элемент. Соответсвенно, сам перебор по скорости ~одинаков для ArrayList и LinkedList, а удаление с оптимальным использованием памяти и по времени, очевидно, быстрее в LinkedList.

    Были бы структуры данных, применение найдется, никакого лобби нет :)
  • Пример использования связного списка?

    Artem_zin
    @Artem_zin
    Какой читерский бенчмарк в пользу ArrayList. ArrayList создан сразу под количество элементов (соответственно вставка быстрая), удаление по индексу из LinkedList, ну тут и говорить не о чем. Тогда уж надо расходы по памяти смотреть, если после каждого remove вы не делаете trim.

    Я не спорю, что при данном кейсе (из вашего бенчмарка) выиграет ArrayList, это можно понять даже не заглядывая в таблицу результатов. Просто у каждой структуры есть свои плюсы/минусы, я вот привел пример со списком слушателей, где плюсы связного списка для меня перевешивают плюсы ArrayList.

    Естественно в 99% нужно использовать ArrayList в качестве реализации списка, это да. То, что есть куча кода в тысячах проектов где по незнанию всунули LinkedList не означает, что он не нужен в принципе. Просто необходимо огородить его такого опасного использования, это да.
  • Пример использования связного списка?

    Artem_zin
    @Artem_zin
    Извиняюсь за отдельный ответ, видимо не в то поле начал писать
  • Пример использования связного списка?

    Artem_zin
    @Artem_zin
    Ну ок, по памяти верю, но еще раз про время операций?

    Нашел дурацкое, но все же какое-то сравнение перформанса ArrayList и LinkedList http://java.dzone.com/articles/arraylist-vs-linkedlist-vs

    Вставка и удаление работают быстрее в LinkedList, это факт, к тому же после удаления предлагаете каждый раз вызывать trim() у ArrayList, если уж о памяти заботится?

    При последовательном чтении (через итератор естественно) производительность будет одинакова, все равно объекты по памяти раскиданы и для массивов (т.к. в них только ссылки, если мы про Java)
  • Пример использования связного списка?

    Artem_zin
    @Artem_zin
    А если подписчики постоянно добавляются/убавляются, причем неравномерно :) это, конечно, шутка.

    А теперь серьезно. Вы ведь сравнили только по памяти, а как же сложность операций? Добавление элемента может вызвать увеличение ArrayList, а это время (малое конечно т.к. System.arrayCopy() быстрый по максимуму, но все же это время) или наоборот удаление элемента точно приведет к копированию массива.

    Я сейчас хочу график где-нибудь найти сравнения по памяти LinkedList и ArrayList, если найдете, поделитесь пожалуйста.