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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.03.2015, 23:07
OlmerDale вне форума Посмотреть профиль Отправить личное сообщение для OlmerDale Найти все сообщения от OlmerDale
  № 1  
Ответить с цитированием
OlmerDale
[+1 09.05.15]

Регистрация: Jan 2015
Сообщений: 113
По умолчанию Один массив для множества или для каждего отдельный массив?

Помогите решить спор с коллегой, который самостоятельно я разрешить не могу.
Существует объект, который содержит однотипные объекты с массиве
Код AS3:
private var _objects:Vector.<CustomClass>
Эти объекты бывают в разных состояниях - используется, не используется и ожидает использования.
Так вот спор в том, стоит ли создать три массива, если я могу и все в одном устроить..
Нужно или нет?

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Зависит от конечной задачи.
А при смене состояния элемент перекидывается в соседний массив?
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 26.03.2015, 23:25
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 3  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Вряд ли здесь есть правильное решение. Ведь можно хранить и три массива, и общий одновременно. Может и ошибаюсь, но всё зависит от ситуации.

Старый 26.03.2015, 23:39
OlmerDale вне форума Посмотреть профиль Отправить личное сообщение для OlmerDale Найти все сообщения от OlmerDale
  № 4  
Ответить с цитированием
OlmerDale
[+1 09.05.15]

Регистрация: Jan 2015
Сообщений: 113
Код AS3:
А при смене состояния элемент перекидывается в соседний массив?
Да..

Старый 27.03.2015, 00:43
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 5  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Использование одного массива может быть более эффективно только если за один проход логически обрабатывать все три типа объектов. Если же в разных местах кода необходимо обработать первый, второй и третий типы объектов, то в случае с одним массивом это приведет к трем проходам (вместо одного) с логическими операциями в каждом.

Разделение на три массива неудобно лишь миграцией при смене состояния. Подобное усложнение кода будет совершенно не оправданным, если объектов меньше нескольких сотен тысяч (или миллионов) ну чтобы почувствовать выигрыш.
__________________
Поймай яблоко 2!

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
ну чтобы почувствовать выигрыш.
Который тут тоже вряд ли удастся почувствовать, потому что для определения в каком состоянии объект находится, тоже надо будет пробежаться по массивам, чтобы его найти)

В ас3 все просто устроено гораздо примитивнее некоторых других языков, в которых есть разные HashMap, LinkedMap и т.п. Которые как раз и затачивались для решения подобных задач

Старый 27.03.2015, 12:17
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 7  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Который тут тоже вряд ли удастся почувствовать, потому что для определения в каком состоянии объект находится, тоже надо будет пробежаться по массивам, чтобы его найти.
Почему-то изначально думал, что каждый объект имеет, например, геттер state
__________________
Поймай яблоко 2!

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Почему-то изначально думал, что каждый объект имеет, например, геттер state
Не, ну это понятно, но чтобы к этому геттеру обратиться, надо ведь сначала сам объект как-то найти

Старый 27.03.2015, 20:11
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 9  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Мы рискуем увлечься обсуждением логики, которая может быть самой разной.
Если нужно взять состояние объекта — мы всегда знаем, о каком объекте идет речь, имеем ссылку на него (а следовательно и состояние).
Если нужно обработать все объекты с одинаковым состоянием — мы пройдемся по одному из трех массивов, без нужды производить сравнение (тут будет определенный выигрыш).
__________________
Поймай яблоко 2!

Старый 27.03.2015, 20:48
OlmerDale вне форума Посмотреть профиль Отправить личное сообщение для OlmerDale Найти все сообщения от OlmerDale
  № 10  
Ответить с цитированием
OlmerDale
[+1 09.05.15]

Регистрация: Jan 2015
Сообщений: 113
Логика такая, как говорит caseyryan

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

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

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


 


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


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