Каковы плюсы и минусы использования Vector.<>
вместо array
?
Вектор.‹› против массива
Ответы (5)
На странице документации Adobe:
Из-за своих ограничений Vector имеет два основных преимущества по сравнению с экземпляром Array, все элементы которого являются экземплярами одного класса:
- Производительность: доступ к элементам массива и итерации выполняются намного быстрее при использовании экземпляра Vector, чем при использовании Array.
- Безопасность типов: в строгом режиме компилятор может идентифицировать ошибки типа данных, такие как присвоение вектору значения неправильного типа данных или ожидание неверного типа данных при чтении значения из вектора. Однако обратите внимание, что при использовании метода push() или метода unshift() для добавления значений в вектор типы данных аргументов не проверяются во время компиляции, а проверяются во время выполнения.
Pro: Vector быстрее, чем Array - например. см. это: Быстрое кодирование JPEG с помощью Flash Player 10
Против: Vector требует FP10, и, согласно http://riastats.com/, около 20% пользователей все еще используют FP9
Векторы быстрее. Хотя для последовательной итерации похоже, что быстрее всего работают связанные списки.
Векторы также могут быть полезны для операций с растровыми изображениями (проверьте BitmapData.setVector, а также BitmapData.lock и unlock).
Пример связанного списка, упомянутый ранее в комментариях, написан неправильно, хотя он пропускает нечетные узлы и из-за этого перебирает только половину одних и тех же данных. Неудивительно, что он получил такие отличные результаты, может быть, и быстрее с правильным кодом, но не такая же разница в %. Цикл устанавливает current = current.next слишком много раз (как в цикле, так и в качестве условия цикла) на каждой итерации, что вызывает такое поведение.
Согласно веб-сайту проникновения флеш-плеера, он немного выше. Около 85%