Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
 C# Hashtable  [new]
vah
Member

Откуда:
Сообщений: 2614
Скажите пожалуйста,
какие сложности могут быть связаны с использованием Hashtable?
Заранее благодарен.
3 дек 18, 22:46    [21752457]     Ответить | Цитировать Сообщить модератору
 Re: C# Hashtable  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 3404
vah
Скажите пожалуйста,
какие сложности могут быть связаны с использованием Hashtable?
Заранее благодарен.

коллизия хеш кодов
3 дек 18, 22:52    [21752460]     Ответить | Цитировать Сообщить модератору
 Re: C# Hashtable  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20437
https://stackoverflow.com/a/5742863
3 дек 18, 23:52    [21752480]     Ответить | Цитировать Сообщить модератору
 Re: C# Hashtable  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5011
Roman Mejtes
vah
Скажите пожалуйста,
какие сложности могут быть связаны с использованием Hashtable?
Заранее благодарен.

коллизия хеш кодов

И?
4 дек 18, 06:05    [21752526]     Ответить | Цитировать Сообщить модератору
 Re: C# Hashtable  [new]
fkthat
Member

Откуда:
Сообщений: 1163
Roman Mejtes
коллизия хеш кодов


Коллизия не вызывает никакких проблем, кроме возможного снижения производительности. Реальную проблему может вызвать ровно обратная ситуация - когда одинаковые объекты-ключи возвращают разные хеш-коды.
4 дек 18, 06:52    [21752535]     Ответить | Цитировать Сообщить модератору
 Re: C# Hashtable  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5011
fkthat
Roman Mejtes
коллизия хеш кодов


Коллизия не вызывает никакких проблем, кроме возможного снижения производительности. Реальную проблему может вызвать ровно обратная ситуация - когда одинаковые объекты-ключи возвращают разные хеш-коды.

Ну, Липперт некогда писал, что сам как-то лажанулся с реализацией хэшкода, и это было чревато в плане финансовом (как раз из-за просадки производительности). Хотя там вроде как была проблема не с коллизиями, а с балансировкой дерева таблицы (равномерным распределением хэшкода). Но я как-то сомневаюсь, что у ТС ситуация близка к подобным реалиям.
4 дек 18, 07:30    [21752548]     Ответить | Цитировать Сообщить модератору
 Re: C# Hashtable  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 3404
fkthat
Roman Mejtes
коллизия хеш кодов


Коллизия не вызывает никакких проблем, кроме возможного снижения производительности. Реальную проблему может вызвать ровно обратная ситуация - когда одинаковые объекты-ключи возвращают разные хеш-коды.

ыы, где то год назад ковырял говнокод, там был hashtable, в него заполнялись элементы, но потом поиск\проверка не срабатывала :)) копнул чуть глубже, оказалось, что в GetHashcode() элементов вычисляли хеш сумму не из RO полей, поля изменялись, менялась хеш сумма и привет.
4 дек 18, 12:11    [21752746]     Ответить | Цитировать Сообщить модератору
 Re: C# Hashtable  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5011
Roman Mejtes
там был hashtable, в него заполнялись элементы, но потом поиск\проверка не срабатывала :)) копнул чуть глубже, оказалось, что в GetHashcode() элементов вычисляли хеш сумму не из RO полей, поля изменялись, менялась хеш сумма и привет.

В generic dictionary будет то же самое - там тоже для поиска элемента используются buckets и итерации поиска по ним на основе хэшкода элемента.
4 дек 18, 12:18    [21752752]     Ответить | Цитировать Сообщить модератору
Все форумы / WinForms, .Net Framework Ответить