|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
[+1 09.05.15]
Регистрация: Jan 2015
Сообщений: 113
|
Один массив для множества или для каждего отдельный массив?
Помогите решить спор с коллегой, который самостоятельно я разрешить не могу.
Существует объект, который содержит однотипные объекты с массиве Эти объекты бывают в разных состояниях - используется, не используется и ожидает использования. Так вот спор в том, стоит ли создать три массива, если я могу и все в одном устроить.. Нужно или нет? |
|
|||||
[+1 09.05.15]
Регистрация: Jan 2015
Сообщений: 113
|
|
|
|||||
Lorem ipsum
|
Использование одного массива может быть более эффективно только если за один проход логически обрабатывать все три типа объектов. Если же в разных местах кода необходимо обработать первый, второй и третий типы объектов, то в случае с одним массивом это приведет к трем проходам (вместо одного) с логическими операциями в каждом.
Разделение на три массива неудобно лишь миграцией при смене состояния. Подобное усложнение кода будет совершенно не оправданным, если объектов меньше нескольких сотен тысяч (или миллионов) ну чтобы почувствовать выигрыш.
__________________
Поймай яблоко 2! |
|
|||||
Цитата:
В ас3 все просто устроено гораздо примитивнее некоторых других языков, в которых есть разные HashMap, LinkedMap и т.п. Которые как раз и затачивались для решения подобных задач |
|
|||||
Lorem ipsum
|
Почему-то изначально думал, что каждый объект имеет, например, геттер state
__________________
Поймай яблоко 2! |
|
|||||
Lorem ipsum
|
Мы рискуем увлечься обсуждением логики, которая может быть самой разной.
Если нужно взять состояние объекта — мы всегда знаем, о каком объекте идет речь, имеем ссылку на него (а следовательно и состояние). Если нужно обработать все объекты с одинаковым состоянием — мы пройдемся по одному из трех массивов, без нужды производить сравнение (тут будет определенный выигрыш).
__________________
Поймай яблоко 2! |
|
|||||
[+1 09.05.15]
Регистрация: Jan 2015
Сообщений: 113
|
Логика такая, как говорит caseyryan
|
Часовой пояс GMT +4, время: 19:35. |
|
« Предыдущая тема | Следующая тема » |
|
|