![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Bogdan1024 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1436 Регистрация: 28.9.2005 Где: Киев Репутация: 5 Всего: 13 |
Вот иногда есть много всяких int'ов, и нужно их всех запомнить. Можно применить для этого Arraylist, но мсдн говорит что он медленный, можно применить для этого хэш-коллекцию (забыл как называется), но там ненужное свойство "Value" есть. Что использовать оптимальнее всего?
-------------------- ![]() |
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 14 Всего: 62 |
Если ты уверен, что такой подход не доставит тебе проблем при отладке, а затем и при поддержке проекта (с символьными переменными гораздо проще разбираться, нежели с записями вроде list[5]), то следует использовать List<int>. Он и быстрее ArrayList, да и проверку типов осуществляет на этапе компиляции.
|
|||
|
||||
Bogdan1024 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1436 Регистрация: 28.9.2005 Где: Киев Репутация: 5 Всего: 13 |
Ну, я под ArrayList имел List<int> ввиду
![]() -------------------- ![]() |
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 14 Всего: 62 |
||||
|
||||
Bogdan1024 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1436 Регистрация: 28.9.2005 Где: Киев Репутация: 5 Всего: 13 |
При поиске значений хэш<int> теоретически быстрее. Дык вот я и думаю, а есть ли что-то быстрее хэша и эрэйлиста.
-------------------- ![]() |
|||
|
||||
mihryak |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 19 Всего: 36 |
Для хешируемых коллекций (SortedList, Dictionary, HashTable) помимо самого значения нужен ключ, причём уникальный. Если int-ы удовлетворяют этому требованию, то можно идля ключа использовать то же значение. Выгода будет в случае необходимости часто производить поиск по коллекции (занимает всегда О(1), при этом, если разумно задать Capacity, то и добавление будет тоже О(1)).
Иначе - List<int>. Про медленность - очень спорно, хоть поиск "в лоб" и занимает О(n), но обращение к элементам и их добавление практически такое же, как и у массивов (он на базе массива и сделан, просто обернули удобными методами и автоматическим расширением). |
|||
|
||||
kven |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 5.12.2007 Репутация: 1 Всего: 1 |
У меня такой вопрос. Если использовать просто ArrayList добавление какая сложность
удаление какая сложность максимум естественно. И поиск. И насколько быстрее это в List<int>. Просто у меня задача которая требует количество итераций не более log(n). Насколько возможно такая реализация. И ещё 1 вопрос. При исползования нумератора для коллекции. Если я удаляю элемент с первой позиции это занимает O(1) шаг в arrayList или максимум O(n)? Буду благодарен за ответы, чем быстрее тем лучше |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |