Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.12.2012, 10:24
NAO111 вне форума Посмотреть профиль Отправить личное сообщение для NAO111 Найти все сообщения от NAO111
  № 1  
Ответить с цитированием
NAO111

Регистрация: Oct 2009
Сообщений: 155
Attention Array vs Object vs Dictionary vs Vector

Доброго времени суток! ActionScript 3 изучаю недавно, вот обнаружил, что язык ActionScript 3 имеет 4 типа коллекций - Array, Object, Dictionary, Vector. Поскольку опыта у меня мало, хотелось бы узнать мнение опытных - какой тип коллекции и когда лучше использовать.
Спасибо!

Старый 18.12.2012, 10:27
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 2  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Это резюме в Яндекс. Я бы вас пока не брал туда )
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 18.12.2012, 10:29
NAO111 вне форума Посмотреть профиль Отправить личное сообщение для NAO111 Найти все сообщения от NAO111
  № 3  
Ответить с цитированием
NAO111

Регистрация: Oct 2009
Сообщений: 155
Да, вы правы. Но я туда и не собираюсь) Но всё-же, произошло стечение обстоятельств - совсем недавно я задумался над этим вопросом и вчера увидел подобный на Яндексе - стало еще интереснее)

Старый 18.12.2012, 10:31
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 4  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Array - динамический тип данных. Обращение к данным по индексу.
Object - динамический тип данных, Обращение к данным по строковому идентификатору.
Vector - данные могут быть только одного типа, обращение по индексу. Более быстрый чем остальные.
__________________
Дети не должны знать о своих родителях

Старый 18.12.2012, 10:34
NAO111 вне форума Посмотреть профиль Отправить личное сообщение для NAO111 Найти все сообщения от NAO111
  № 5  
Ответить с цитированием
NAO111

Регистрация: Oct 2009
Сообщений: 155
А Dictionary еще быстрее всех перечисленных. И доступ туда по объектам. Это всё почти "определения". Но, когда лучше какой использовать...

Старый 18.12.2012, 10:40
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 6  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Ну как-бы, из определения и следует, когда и какой нужно использовать.

Нужно хранить разные типы данных - Array. Карту игрового мира 150x150 с постоянными обращениями - Vector
__________________
Дети не должны знать о своих родителях

Старый 18.12.2012, 10:47
NAO111 вне форума Посмотреть профиль Отправить личное сообщение для NAO111 Найти все сообщения от NAO111
  № 7  
Ответить с цитированием
NAO111

Регистрация: Oct 2009
Сообщений: 155
С Вектором всё понятно. А вот хранить разные типы данных - можно использовать Array, Dictionary, Object.
Допустим у меня есть класс User:
Код AS3:
User
{
   public var id:String;
   public var name:String
}
Чтобы хранить пачку таких юзеров я могу использовать следующее:
Код AS3:
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;
Да и вектор сюда тоже вполне подойдет.

Что лучше? =)

Старый 18.12.2012, 11:08
kackbip вне форума Посмотреть профиль Отправить личное сообщение для kackbip Найти все сообщения от kackbip
  № 8  
Ответить с цитированием
kackbip
 
Аватар для kackbip

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
Как я понял по последним дебатам местных профессионалов. Имеет смысл использовать только Vector и Dictionary.
Object это вобще не коллекция.
Array же уступает в быстродействии вектору.

Старый 18.12.2012, 11:24
NAO111 вне форума Посмотреть профиль Отправить личное сообщение для NAO111 Найти все сообщения от NAO111
  № 9  
Ответить с цитированием
NAO111

Регистрация: Oct 2009
Сообщений: 155
Array отметается, Согласен - неудобно, да и не нужно, раз есть Vector.
Что касается Object - может это и не коллекция, дело не в терминологии, но хранить свойства он позволяет и использовать его можно с тем же успехом, что и Dictionary. Только у Dictionary скорость доступа к данным по ключу быстрее чем у Object. Ввиду скорости - предпочтении остается за Dictionary. А если скорость не учитывать, а учитывать лишь удобство использования (переборы, сортировка, заполнение и пр.)

Старый 18.12.2012, 11:56
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 10  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
Только у Dictionary скорость доступа к данным по ключу быстрее чем у Object
Можно пруфы?

Цитата:
Что касается Object - может это и не коллекция, дело не в терминологии, но хранить свойства он позволяет и использовать его можно с тем же успехом, что и Dictionary.
В словаре в качестве ключа может быть объект.

Вектор проигрывает массиву в универсальности.

Короче по обстоятельствам надо использовать. Я люблю массив и объект вкупе. Массив для массовых операций, объект, как хеш для быстрого доступа к конкретному элементу по ключу.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:34.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 15:34.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.