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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 15.04.2014, 15:17
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 21  
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
Я бы не был на твоем месте так категоричен. Dictionary и Object - это те же коллекции на ас3.
Тут немного не по этому я так грубо высказался. Если у явы массивы типизированы и для этого в коллекции создают ноды для хранения данных ( хотя я не знаю создают их в яве или нет ), то зачем так делать во флешь? На каждый элемент создается нода, но когда дело доходит до итераций, то данные с нод перегоняются в массив и уже оперируют с методами Array. Так почему сразу нельзя класть в массив, зачем создавать ненужные ноды?

Старый 15.04.2014, 15:56
toFL вне форума Посмотреть профиль Найти все сообщения от toFL
  № 22  
toFL
Banned

Регистрация: May 2011
Адрес: +48° 27' 57.93", +35° 2' 46.02"
Сообщений: 447
Записей в блоге: 2
Отправить сообщение для toFL с помощью Skype™
Как это все относится к теме "Уникальный идентификатор объекта"? Тем более в категории "ActionScript 3.0"?

Старый 15.04.2014, 16:03
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 23  
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Коллекция - это широкое понятие. Связанный список, очередь, стек - это все есть различные коллекции (и, соответственно, более узкие понятия).
Создание нод (в качестве элеентов связанного списка) нужно тогда, когда мы планируем часто добавлять и удалять, много вставлять в середину.
Создание HashMap (или Dictionary в AS3) выгодно для моментального поиска по ключу.
Создание ArrayList выгодно, когда... Да Вы же сами прочитали все на хабре.
Иначе говоря, для каждой разновидности коллекций есть свое применение, для которого эта разновидность и была придумана. Коллекции (все разом, как общее понятие) не могут быть чем-то хорошим или чем-то плохим. Это просто структуры данных со своими свойствами и особенностями.

Вот про связанный список - я в свое время делал изометрическую игрушку. По условиям задачи нужно сортировать объекты (которых оооочень много) по глубине, чтобы каждый кадр отображаемый порядок был верным. Я использовал связанный список и сортировку вставками. К слову, связанный список - это медленно для сортировки. И сортировка вставками - это тоже медленно. А вот если немного подумать, то выясняется что в изометрических играх меняется глубина только у движущихся объектов, а их немного. А еще вспоминаем что в связанном списке очень легко что-то добавить или удалить. А еще что сортировка вставками лучше всего себя ведет на данных, которые уже почти отсортированы. И вот внезапно получается что из медленной структуры данных и медленной сортировки можно сделать очень быструю изометрию, которая вообще ничего лишнего не делает за кадр.

PS
Так же хочется оговориться, что ноды для связанного списка можно создать заранее (использовать пул объектов) с тем, чтобы ускорить добавление элементов. Ну и при удалении ноду можно просто вернуть в пул, тоже будет в конечном итоге быстрее работать.
__________________
...вселенская грусть

Старый 15.04.2014, 16:09
toFL вне форума Посмотреть профиль Найти все сообщения от toFL
  № 24  
toFL
Banned

Регистрация: May 2011
Адрес: +48° 27' 57.93", +35° 2' 46.02"
Сообщений: 447
Записей в блоге: 2
Отправить сообщение для toFL с помощью Skype™
По теме от себя. Я встречал только два нормальных варианта сравнения структур данных, это:
  1. Переопределить оператор == (как в C++)
    Код:
    inline bool operator==(const X& lhs, const X& rhs){ /* do actual comparison */ }
  2. У класса сделать статическую функцию проверки (как в Java)
    Код:
    public boolean equals(Object obj) { 
        return (this == obj);
    }
Так как == в AS3 не переопределить (насколько мне известно), то остается вариант 2. Либо используйте свои Dictionary, ключи, интовые id и т.п.

Старый 15.04.2014, 16:19
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 25  
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
Как это все относится к теме "Уникальный идентификатор объекта"? Тем более в категории "ActionScript 3.0"?
Меня спросили я ответил и специально и даже специально добавил -
Цитата:
А самое главное, мое непонимание, как-то сказывается на применение коллекции в as3?
gloomyBrain а Вы самосозданную коллекцию используете? Если да, то наверняка ВЫ все немного по другому сделали. И ещё я у Вас позаимствовал код с очередью, он самый быстрый из всех что я видел. Спасибо!

Старый 15.04.2014, 17:19
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 26  
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Ако, попробуй перефразировать свои мысли приняв за истину, что коллекция – это что-то, где чего-то может быть 0 и больше. Массив, хэш, список, словарь, вектор – всё это коллекция.
В структурах данных редко кто изобретает что-то новое. Сейчас уже всё хорошо.

Старый 15.04.2014, 17:44
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 27  
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Akopalipsis, не хочется повторяться, но все же.
Цитата:
Меня спросили - я ответил.
Спросили потому, что вы заикнулись про яву и ее коллекции, которые тут вообще ни к селу, ни к городу.
Я не понимаю вашей логики: вы изучаете AS3, так при чем тут java? Что вы сравниваете, что пытаетесь извлечь из этого "сравнения"? Это разные платформы. У каждой своя история и способы реализации тех или иных конструкций.
Разговор в очередной раз укатился в неведомые дали. Тема топика, считаю, раскрыта. Финиш.

В очередной раз Akopalipsis продемонстрировал недюжинные способности к троллингу на пустом месте..

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

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

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


 


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


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