![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Array - хитрореализованный список, до того хитрый, что добавление элементов с конца работает медленнее чем с 0-го (что нонсенс для Vector из С++ или List из C#)
Доступ по индексу за 0(1), удаление произвольного элемента за 0(N) - можно считать просто динамическим массивом. В отличие от Vector - у Array доступ по индексу в 2 раза медленнее и не кидает исключений при выходе индекса за границы Непонятно зачем, но может работать как хештаблица Однако, если в качестве ключа в него попадёт "132423345" и сконвертится в числовой индекс - моментально огребёте с памятью. Ну и если большие числовые индексы задавать - тоже самое будет - я бы в качестве хеша не юзал. Еще при использовании в качестве ассоциативного массива свойство lengh - вообще показывает неизвестно что, а не общее количество элементов. Vector - Предсказуемый тип, работает практически так же как Vector из stl С++ или List из C# Возможна типизация элементов Но невозможны преобразования: var a:Vector<DisplayObject> = new Vector<Sprite>();// не сработает - а ведь Sprite - наследник DisplayObject Причём, то, что он предок всего - не означает, что всё может работать как хеш-таблица. Такая вот забавная организация типов. Если использовать как хеш-таблицу: - любой ключ конвертирует в строку - поэтому с памятю как в случае с Array не огребёте - но из-за этой конвертации теряет в производительности, если использовать числовые ключи (object[13234] эквивалентно object["13234"]) Dictionary Тоже хештаблица, но ключами могут быть любые объекты. Со строковыми ключами работает с той же скоростью, что и Object, с числовыми не помню - но по крайней мере не шибко медленнее Object. Применяется если в качестве ключа удобнее использовать объект, а не строку или число. |
![]() |
Часовой пояс GMT +4, время: 19:07. |
|
|
« Предыдущая тема | Следующая тема » |
|
|