|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Oct 2009
Сообщений: 155
|
Array vs Object vs Dictionary vs Vector
Доброго времени суток! ActionScript 3 изучаю недавно, вот обнаружил, что язык ActionScript 3 имеет 4 типа коллекций - Array, Object, Dictionary, Vector. Поскольку опыта у меня мало, хотелось бы узнать мнение опытных - какой тип коллекции и когда лучше использовать.
Спасибо! |
|
|||||
Регистрация: Oct 2009
Сообщений: 155
|
Да, вы правы. Но я туда и не собираюсь) Но всё-же, произошло стечение обстоятельств - совсем недавно я задумался над этим вопросом и вчера увидел подобный на Яндексе - стало еще интереснее)
|
|
|||||
Array - динамический тип данных. Обращение к данным по индексу.
Object - динамический тип данных, Обращение к данным по строковому идентификатору. Vector - данные могут быть только одного типа, обращение по индексу. Более быстрый чем остальные.
__________________
Дети не должны знать о своих родителях |
|
|||||
Регистрация: Oct 2009
Сообщений: 155
|
А Dictionary еще быстрее всех перечисленных. И доступ туда по объектам. Это всё почти "определения". Но, когда лучше какой использовать...
|
|
|||||
Ну как-бы, из определения и следует, когда и какой нужно использовать.
Нужно хранить разные типы данных - Array. Карту игрового мира 150x150 с постоянными обращениями - Vector
__________________
Дети не должны знать о своих родителях |
|
|||||
Регистрация: Oct 2009
Сообщений: 155
|
С Вектором всё понятно. А вот хранить разные типы данных - можно использовать Array, Dictionary, Object.
Допустим у меня есть класс User: Чтобы хранить пачку таких юзеров я могу использовать следующее: var user1:User = new User(); var user2:User = new User(); var arr:Array = [user1, user2]; var obj:Object = {user1.id:user1, user2.id:user2}; var dict:Dictionary = new Dictionary(); dict[user1.id] = user1; dict[user2.id] = user2; Что лучше? =) |
|
|||||
Как я понял по последним дебатам местных профессионалов. Имеет смысл использовать только Vector и Dictionary.
Object это вобще не коллекция. Array же уступает в быстродействии вектору. |
|
|||||
Регистрация: Oct 2009
Сообщений: 155
|
Array отметается, Согласен - неудобно, да и не нужно, раз есть Vector.
Что касается Object - может это и не коллекция, дело не в терминологии, но хранить свойства он позволяет и использовать его можно с тем же успехом, что и Dictionary. Только у Dictionary скорость доступа к данным по ключу быстрее чем у Object. Ввиду скорости - предпочтении остается за Dictionary. А если скорость не учитывать, а учитывать лишь удобство использования (переборы, сортировка, заполнение и пр.) |
|
|||||
Цитата:
Цитата:
Вектор проигрывает массиву в универсальности. Короче по обстоятельствам надо использовать. Я люблю массив и объект вкупе. Массив для массовых операций, объект, как хеш для быстрого доступа к конкретному элементу по ключу.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
Часовой пояс GMT +4, время: 15:34. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|