Не так давно я считал. что нет оправдания использованию java.util.LinkedList в качестве реализации java.util.List. Но что-то заставило меня его поискать. Давайте разберемся. Любой грамотный Java-специалист знает, что java.util.ArrayList нужно использовать тогда, когда нам нужен быстрый доступ по индексу, а java.util.LinkedList, если нам нужно вставлять или удалять элементы в середине списка. Не многие из них догадываются, что если мы будем вставлять или удалять элементы в середине списка методами remove(int index) и add(int index, E element), то на поиск нужного элемента будет затрачено время в среднем пропорциональное размеру списка O(N). Так когда же возникает выгода от использования java.util.LinkedList?
Читать полностью »
Метка «list»
DoubleArrayList — универсальная реализация java.util.List
2013-02-03 в 17:18, admin, рубрики: collections, java, list, Алгоритмы, метки: collections, java, listНакладные расходы памяти у коллекций
2012-12-04 в 4:20, admin, рубрики: java, list, коллекции, память, Программирование, метки: list, коллекции, память, Программирование, сеть Мне было интересно, какие коллекции сколько съедают дополнительной памяти при хранении объектов. Я провёл замеры накладных расходов для популярных коллекций, предполагающих хранение однотипных элементов (то есть списки и множества) и свёл результаты на общий график. Вот картинка для 64-битной Hotspot JVM (Java 1.6):

Читать полностью »
Unrolled linked list на Java
2012-08-20 в 17:43, admin, рубрики: algorithms, data structures, java, list, Алгоритмы, Песочница, метки: algorithms, data structures, java, listВсем привет.
Время от времени я, как и большинство программистов, изучаю какие-то новые структуры и алгоритмы.
В этот раз мне на глаза попались статью по cache oblivious алгоритмы, то есть такие алгоритмы, которые изначально более оптимизированы для работы с подсистемой кэширования современных процессоров.
Одним из представителей этой группы является Unrolled linked list.
Что же это такое?
Читать полностью »
Неприятная особенность std::list, о которой не все знают
2012-08-10 в 10:17, admin, рубрики: c++, list, stl, wtf, С++, метки: list, stl, wtf, С++Односвзязный список — это фундаментальная структура данных, о которой все знают и повсеместно используют. Все знают почему и в каких случаях он эффективнее вектора, какие операции имеют линейную сложность, а какие — константную…
Хотя постойте, знаете ли вы какова соложность функции size ()?
«Конечно же я знаю — О(1)!», ответят многие из вас, «Что может быть проще?»
size_type size() const
{
return _size;
}
Тривиально, эффективно и безопасно, не так ли?
Я бы реализовал эту функцию именно так, большинство из вас сделали бы тоже самое.
Однако, те, кто писал реализацию GNU STL, другого мнения на этот счет.
Читать полностью »
Unity — выбираем, какой массив использовать
2012-04-17 в 21:46, admin, рубрики: list, unity, unity3d, массивы, Программирование, разработка, метки: list, unity, unity3d, массивы
Для тех, кто сталкивался с Unity, — не секрет, что эта платформа предоставляет большое количество разнообразных массивов — аж 5 штук (для JS и того больше — 6!). Так что же выбрать и как не запутаться в этом многообразии?
Начну — с конца. Сразу же приведу данные собранные в табличку.
| Нетипизованный | Типизованный | |
| Доступ по индексу, фиксированная длина |
- | встроенный массив (built-in array) |
| Доступ по индексу, динамический размер |
ArrayList или Javascript Array |
List |
| Доступ по ключу | Hashtable | Dictionary |
А теперь — давайте поговорим о каждом в отдельности…
Читать полностью »
