static void Main(string[] args) { Console.WriteLine("Введите кол-во потоков"); var n = int.Parse(Console.ReadLine() ?? throw new InvalidOperationException()); Console.WriteLine("Введите основание hash функции"); var k = int.Parse(Console.ReadLine() ?? throw new InvalidOperationException()); var hashT = new CustomHashTable(k); var locker = new object(); Parallel.For((long)0, n, i => { while (true) { Thread.Sleep(50); var rand = new Random(); var key = rand.Next(int.MinValue, int.MaxValue); var value = rand.Next(int.MinValue, int.MaxValue); lock (locker) //TODO { hashT.Insert(key, value); } var msg = $"key: {key}, value: {value}"; Console.WriteLine(msg); Thread.Sleep(100); } } ); }
static void Main(string[] args) { //CustomHashTable<string, string> ht = new CustomHashTable<string, string>(3); //ht.Insert("Кладбище домашних животных", "Стивен Кинг"); //ht.Insert("Тёмная башня", "Стивен Кинг"); //ht.Insert("Владычица озера", "Анджей Сапковский"); //ht.Insert("Крещение огнём", "Анджей Сапковский"); //ht.Insert("Башная ласточки", "Анджей Сапковский"); int length = 200; CustomHashTable <string, int> ht = new CustomHashTable <string, int>(length); Random rnd = new Random(); string testKey = ""; for (int i = 0; i < length; i++) { string str = ""; for (int j = 0; j < 10; j++) { str += (char)rnd.Next(65, 124); } if (i == 0) { testKey = str; } ht.Insert(str, rnd.Next(1, 101)); } foreach (var pair in ht) { Console.WriteLine(pair.Key + " : " + pair.Value); } Console.WriteLine(new string('-', 30)); Console.WriteLine(ht[testKey]); Console.WriteLine(ht.Search(testKey)); ht.Delete(testKey); try { Console.WriteLine(ht.Search(testKey)); } catch (Exception e) { Console.WriteLine(e.Message); } Console.ReadKey(); }
public static void Main() { var table = new CustomHashTable <int, string>(); for (int i = 0; i < 50; i++) { table.Add(i, i.ToString()); } Console.WriteLine(table); Console.WriteLine(table.Count); }
private void ResizeIfNeeded() { if (this.elementsCounter >= this.elements.Length * LoadFactor) { var newCustomHashTable = new CustomHashTable <K, V>(this.elements.Length * 2); foreach (var pair in this) { newCustomHashTable.Add(pair.Key, pair.Value); } this.elements = newCustomHashTable.elements; } }