Страница: 1 |
Страница: 1 |
Вопрос: Коллекции объектов
Добавлено: 07.10.04 16:00
Автор вопроса: Barulya
Подскажите пожалуйста какие из коллекций наиболее оптимальны при работе с большим колличеством объектов?
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
Артём Л.
ICQ: 280044491
Вопросов: 43
Ответов: 227
Профиль | | #1
Добавлено: 07.10.04 16:37
HashTable
Номер ответа: 2
Автор ответа:
Barulya
Вопросов: 29
Ответов: 55
Профиль | | #2
Добавлено: 07.10.04 17:02
По скорости обработки???
Номер ответа: 3
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #3
Добавлено: 08.10.04 08:38
Пожалуйста, конкретнее поясните задачу.
Если к объектам необходимо обращаться по ключу, то лучший выбор -
HashTable.
Если же по индексу, то вместо коллекций разумнее использовать массивы:
они на порядок быстрее работают, и отнимают меньше места в оперативной
памяти (подробнее смотрите в моей статье "Массивы и коллекции в
.NET").
Номер ответа: 4
Автор ответа:
Barulya
Вопросов: 29
Ответов: 55
Профиль | | #4
Добавлено: 08.10.04 11:19
У меня следующая задача: я заполняю в TreeView структуру административно-территориальных образований: страна, область (штат, регион), населенный пункт (город, село, поселок). Последние подразделяются на районные центры и просто населенные пункты (классификация осуществляется по почтовому индексу). Страны, области и населенные пункты хранятся в соответствующих таблицах базы данных, привязаны по ключевым полям. Сначаля я все населенные пункты заполняю простым списком в алфавитном порядке. Потом начинаю группировать по почтовому индексу, т.е. просматриваю все населенные пункты (ноды), если их индекс соответствует цифровому набору районного центра оставляю, если нет- копирую в коллекцию и так до последнего. Потом просматриваю все элементы коллекции (населенные пункты- ноды) и ищу соответствие в основной ноде (область) индекса районного центра, если подходит- добаляю в районный центр населенный пункт.
В качестве структуры использую свой класс унаследованный от TreeView, страны, области и населенные пункты классы унаследованные от TreeNode, в которые добавлены определенные свойство (как-то индексы, параметры индексации населенные пунктов и т.д.). Так вот на примере Украины (содержит 27 регионов и 15223 населенных пунктов) загрузка данного компонента требует очень больших временных затрат и ресурсов машины. Для временного содержания населенных пунктов (не районных центров) я использую обычную коллекцию, использую обычные циклы For each ... in .. Next. Группировку населенных пунктов выполняю для каждой области отдельно. Если у кого-нибудь есть мнение на этот счет, то предложите как можно поступить чтобы ускорить работу приложения. Заране спасибо.
Номер ответа: 5
Автор ответа:
ШевТ
ICQ: 165728420
Вопросов: 1
Ответов: 96
Профиль | | #5
Добавлено: 08.10.04 23:39
ArrayList
Номер ответа: 6
Автор ответа:
Barulya
Вопросов: 29
Ответов: 55
Профиль | | #6
Добавлено: 09.10.04 13:10
Мда, попробовал использовать массивы- скорость увеличилась на несколько порядков. Спасибо за внимание..