SORU
6 Temmuz 2009, PAZARTESİ


.NET karma tablo Vs Sözlük - Sözlük kadar hızlı Olabilir?

Bir Sözlük veya karma tablo kullanmak için ne zaman anlamaya çalışıyorum. Ben yaptım biraz ara burada bulmuş insanların konuşmasını hakkında genel avantajları Sözlüğü hangi tamamen katılıyorum, neden Boks ve kutulama avantajı için hafif bir performans artışı.

Ama Sözlüğü her zaman, sıralanmış şey eklenir, sırayla nesneleri döndürür de okudum. Gibi bir karma tablo nerede. Anladığım kadarıyla bu karma tablo bazı durumlarda çok daha hızlı olmaktan çıkar.

Benim soru gerçekten, bu durumlar ne olabilir? Benim varsayımlar sadece yanlış üzerinde miyim? Bir durum, bir diğer deyimle seçmek için, (Evet sonuncusu biraz belirsiz) ne faydası olabilir.

CEVAP
6 Temmuz 2009, PAZARTESİ


System.Collections.Generic.Dictionary<TKey, TValue> System.Collections.Hashtable dahili sınıflar karma tablo bir veri yapısını korumak hem de.Hiçbiri eşyaların düzenini koruma garantisi.

Boks/kutulama sorunları bir kenara bırakarak, çoğu zaman, çok benzer bir performans olmalı.

Onların arasındaki temel yapısal fark Dictionary dayanırzincirleme(her hash tablosu kova için öğelerin bir listesini bakımı) Hashtable kullanır, ancak çarpışmalar çözmek içinneçarpışma çözümleme için bir çarpışma, bir kova için anahtar eşlemek için bir karma işlev çalıştığında ().

Eğer için yönlendirilmesi Hashtable sınıfı kullanmak için çok az yararı var .NET 2.0 Çerçeve . Etkili bir şekilde eski Dictionary<TKey, TValue> tarafından işlenmiş.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dan Gately

    Dan Gately

    13 AĞUSTOS 2006
  • Peter Sharp

    Peter Sharp

    11 ŞUBAT 2013
  • Submissions101

    Submissions1

    23 ŞUBAT 2007