Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Hash Table Nasıl Çalışır: C# ile Kendi HashMap'ini Yazmak, Collision ve Load Factor
Hash table, key'in hash code'undan bucket index'i hesaplayıp collision'ları chaining ya da open addressing ile çözer; her zaman 42 dönen bir GetHashCode, 10.000 key'lik Dictionary'yi 967 kat yavaşlatıyor. Yazıda .NET Dictionary ile aynı iç yapıda (buckets + entries, free list, prime boyutlar) kendi HashMap'imizi, tombstone'lu linear probing'i, randomized string hashing'i ve bir Bloom filter'ı xUnit testleriyle yazıyoruz.
C# Dictionary ve HashSet: TryGetValue, Key Eşitliği ve Comparer
Dictionary bir key'i GetHashCode ve Equals ile nasıl bulur, eşitliği olmayan class key neden dictionary'yi şişirir. Add, indexer, TryAdd, TryGetValue farkları, .NET 6 CollectionsMarshal ile tek aramada sayma, değişen key tuzağı, OrdinalIgnoreCase ve Türkçe I tuzağı, sıra garantisi ve HashSet set işlemleri.