|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
Цитата:
Лично по моим наблюдениям, словарь имеет такую же скорость доступа как у Object или даже медленнее. Array с доступом по числовому индексу (не по строчному) обгоняет и Object и Dictionary.
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
Регистрация: May 2001
Адрес: Москва
Сообщений: 670
|
Object не может заменить Dictionary, и наоборот. Object чаще всего используют для хранения небольшого объема данных описывающих какую то конкретную сущность (например временные данные, получаемые в ходе вычислений).
Словарь - используют для быстрого доступа к информации об конкурентном объекте. например, есть N кнопок. по клику нужно увеличивать счетчик кликов конкретной кнопки. |
|
|||||
Цитата:
__________________
...вселенская грусть |
|
|||||
Регистрация: May 2001
Адрес: Москва
Сообщений: 670
|
не совсем понимаю в чем спор.
если формулу 1 использовать как грузовую машины ее скорость будет равна скорости трактора. ну да. только зачем? |
|
|||||
Регистрация: May 2001
Адрес: Москва
Сообщений: 670
|
ну это получается забивание гвоздей микроскопом.
только зачем? |
|
|||||
Stone, мое высказывание по поводу использования Dictionary/Object будет полезно (мне так кажется) автору темы и всем кто ее будет читать. Я предлагаю остановиться на этом моменте. Да и, думаю, мы с Вами уже вышли из возраста, когда нужно кому-то что-то доказывать. Тем более что никто из нас (вероятно) не пользуется Dictionary в описанном ключе =)
__________________
...вселенская грусть |
|
|||||
Modus ponens
|
Массивы и векторы - это коллекции в которых разрешены повторения. С точки зрения использования, асимптотическая сложность чтения и записи: O(1), в определенных случаях возможна сортировка. Если сортировка возможна, то ее асимптотичекая сложность: O(n log n). В массивах и векторах, если их можно линейно упорядочить, поиск элемента возможен с асимптотической сложностью O(log n) (т.н. бинарный поиск).
Удаление или добавление из/к таких/м коллекций/ям, это O(n) операция (т.как нужно копировать всю коллекцию). Массивы отличаются от векторов тем, что не декларируют тип элементов. Типы векторов в AS3 не совместимы по присваиванию. Это значит, что Vector.<EventDispatcher> не является под-типом Vector.<Object>, тем не менее есть тип, которому принадлежат все векторы: Vector.<*>. Кроме этого есть много деталей реализации, которые делают теорию не такой простой и однозначной. Но для краткости, не будем вдаваться в подробности. Хеш-таблицы - это коллекции в которых запрещены повторения. Асимптотическая сложность чтения, записи, удаления и добавления - O(1). Хеш-таблицы по-определению не сортируются, зато поиск в них - опять же, O(1). Object - не смотря на то, что во многих отношениях ведет себя как хеш-таблица с ключами строкового типа, на самом деле не совсем хеш таблица. Т.как AS3 не различает на уровне синтаксиса вызов метода специализирующегося на каком-то типе и попытку получить значение по ключу из хеш-таблицы, некоторые ключи в Object просто нельзя положить (т.как они совпадают с уже существующими методами). Dictionary - позволяет использовать произвольные объекты в качестве ключей (в отличие от Object, где это только строки). Но обладает все теми же недостатками. Кроме того, в виду тех же недостатков синтаксиса, изза которых нельзя отличить вызов собственного метода от поиска значения по ключу, хранение ключей примитивных типов в Dictionary работает следующим образом: сначала простые типы конвертируются в строку, а потом хранятся отдельно от ссылочных типов. И, хотя, часто разницей можно принебречь, это может привести к ошибкам приведения типов, которые тяжело обнаружить.
__________________
Hell is the possibility of sanity |
|
|||||
wvxvw, а можно подробнее про повторения? а то не совсем понятно
__________________
местонахождение |
Часовой пояс GMT +4, время: 10:09. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|