Re: Коллекции в .NET Framework Class Library
От: VBez  
Дата: 19.03.04 15:54
Оценка:
В чем тайный смысл того, что у SortedList есть свойство Capacity, а у Hashtable — нету.
Ведь насколько я понял это почти классы-близнецы.

Как и Hashtable, SortedList является реализацией абстракции «словарь» (IDictionary)...

Re[2]: Коллекции в .NET Framework Class Library
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.03.04 18:17
Оценка:
Здравствуйте, VBez, Вы писали:

VB>В чем тайный смысл того, что у SortedList есть свойство Capacity, а у Hashtable — нету.


Вот так вот реализована она. Возможно логика была такой: "рехэш слишком дорогое удоволсьвие чтобы инициировать его вручную."

VB>Ведь насколько я понял это почти классы-близнецы.

VB>

VB>Как и Hashtable, SortedList является реализацией абстракции «словарь» (IDictionary)...


Не совсем. Реализация у них координально разная. SortedList реализован на базе отсортированного массива, а Hashtable на базе однименного алгоритма. Причем я бы очень не советовал использовать SortedList вообще. Больно сильно тормозит. В этом же номере есть статья про реализацию Б-дерева/двухуровневого массива. Вот ее вместо SortedList очень эффективно применять.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Коллекции в .NET Framework Class Library
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.03.04 18:17
Оценка:
Здравствуйте, VBez, Вы писали:

VB>

VB>SortedList
VB>...
VB>Как и Hashtable, SortedList является реализацией абстракции «словарь» (IDictionary), но, в отличие от хэш-таблицы, поддерживает упорядоченность данных. Достигается это за счет хранения ключей и данных в двух отсортированных массивах.
VB>...


VB>Что значат выделенные слова?


Так читать нужно все предложение целиком. Попробую префразировать.

SortedList реализован на базе двух отсортированных массивов... Отсюда и стоит делать выводы о скоростных харктиристиках.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Коллекции в .NET Framework Class Library
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.08.04 10:27
Оценка:
Здравствуйте, orangy, Вы писали:

O>На будущее — типы значений возвращаемые энумератором обычно (но не всегда) совпадают с типом индексера. В частности у BitArray имеется:

O>
O>    public bool this[int index]
O>

O>Главное исключение из этого правила — Dictionary, его энумератор возвращает DictionaryEntry.

Ну, ему по другому кикак. На он и словарь.

А универсальным советом сдесь как всегда является просмотр исходников из Ротора или декомпиляция. Собственно при написании статьи эти два источника были использованы довольно интенсивно.
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Коллекции в .NET Framework Class Library
От: Andrey2006  
Дата: 04.04.06 09:13
Оценка: +1
Здравствуйте, Чистяков Владислав (VladD2), Вы писали:

ЧВV>Статья:

ЧВV>Коллекции в .NET Framework Class Library
Автор(ы): Владислав Чистяков (VladD2)
Дата: 24.06.2004
Рассказ о коллекциях в .NET Framework. Статья будет полезна как начинающим программистам, так и желающим более подробно изучить этот вопрос.


ЧВV>Авторы:

ЧВV> Чистяков Владислав (VladD2)

ЧВV>Аннотация:

ЧВV>Рассказ о коллекциях в .NET Framework. Статья будет полезна как начинающим программистам, так и желающим более подробно изучить этот вопрос.

Статья хорошая, спасибо.
Один глюк нашел в статье: В программульке, которая считает слова, не учитывается последнее слово. Из цикла выходим, не проверив, заполнен ли наш StringBuilder. Это так, на всякий случай, может книгу по мотивам напишут
Re: Коллекции в .NET Framework Class Library
От: abibok  
Дата: 13.02.08 23:47
Оценка:

Кроме всего прочего, необходимо заметить, что для создания массива необходимо жестко задать его размер. В дальнейшем размер массива изменен быть не может. Причем, как уже говорилось выше, языками, входящими в .NET, поддерживаются только массивы с верхней границей, равной нулю. Массивы с верхней границей, отличной от нуля, поддерживаются только на уровне runtime-а, методами класса Array.


"верхней" -> "нижней"?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.