Я тоже новичок в хэш-таблицах, но ...
Словарь - это базовая таблица с двумя столбцами (Key и Value, оба имеют определенные типы) и множеством строк, которые вы добавите позже. Вы увидите, что в словаре вы даете ключ, а словарь дает вам значение, которое вы добавили ранее абсолютно одинаковым ключом.
В хеш-таблице все немного по-другому. У вас снова есть таблица с двумя столбцами (Key и Value, оба типа «объект»). Ключи могут быть не уникальными. Теперь у вас есть две таблицы: одна с двумя столбцами: Key и Hash, а другая с двумя столбцами Hash и Value. Hash - это целое число, полученное из Key. Оказывается, что, хотя ключи могут быть уникальными, хэши могут не быть.
[Тем не менее, я не уверен в этом ... поэтому я сказал "виртуально" ...]
Теперь пример:
Hashtable ht = new Hashtable();
// Key of type Int32
ht[16] = "That is Int32";
// Key of type String
ht["Blah"] = 15;
// Key of type Boolean
ht[false] = "That is boolean";
// Key of type String
ht["Hohoho"] = false;
И позже вы можете получить доступ к любому значению, хранящемуся в Hashtable, просто используя ключи (если такого ключа нет, он возвращает ноль):
Console.WriteLine("ht[{0}] = {1};", 16, ht[16] ?? "null");
Console.WriteLine("ht[{0}] = {1};", "Test", ht["Test"] ?? "null"); // doesnt exist eh...
Console.WriteLine("ht[{0}] = {1};", false, ht[false] ?? "null");
Console.WriteLine("ht[{0}] = {1};", "Hohoho", ht["Hohoho"] ?? "null");
Подвести итог:
Словарь это:
[ Key ][ Value ]
A 1.5
B 1.6
C -8
....
И Хаштабл, вероятно, это:
[ Key ][ Hash ]
A 1
B 2
C -99
...
[ Hash ][ Value ]
-99 -8
1 1.6
2 1.5
....
Надеюсь, это поможет. Любой, кто мог бы объяснить это лучше, не стесняйтесь делать это.
Спасибо и удачи.