SORU
24 EYLÜL 2008, ÇARŞAMBA


.NET veri yapıları: ArrayList, her ne zaman kullanılacağını Listesi, karma tablo, Sözlük, SortedList, SortedDictionary, Hız, bellek ve?

.NET karmaşık veri yapıları var. Ne yazık ki, bazıları oldukça benzer, ve her zaman başka bir kullanım için ne zaman ve ne zaman kullanılacağını emin değilim. Benim en C# ve Visual Basic kitapları belli bir ölçüde onlarla konuşun, ama onlar hiç bir zaman gerçek detaya.

Dizi, ArrayList, List, karma tablo, Sözlük, SortedList, ve SortedDictionary arasındaki fark nedir?

Hangileri (IList ... 'foreach' döngüler)? sayısız vardır Hangileri anahtar/değer çiftleri (IDict) kullanımı?

Ne hafıza ayak izi? Hızlı ekleme? Alma hızı?

Söz herhangi bir diğer veri yapıları değeri var mı?

Hala bellek kullanımı ve hız (Büyük-O gösterimi) hakkında daha detaylı bilgi arıyorum.

CEVAP
24 EYLÜL 2008, ÇARŞAMBA


Kafamın üst kapalı

Array- eski bir bellek dizisi - type[] normal bir dizi gibi diğer tür temsil eder. Numaralandırma. Otomatik olarak büyüyebilir. Çok hızlı ekleme ve retriv varsayılabilir. hız.

ArrayList- otomatik olarak artan bir dizi. Ekler, daha fazla yük. Numaralama. muhtemelen normal bir dizi ama hala çok hızlı daha yavaş. Bu çok kullanılır .NET

List- benim kim görmüş kim sevmiş biri - jenerik ile kullanılabilir, türü kesin belirlenmiş bir dizi, örneğin List<string> olabilir. Bunun dışında davranan çok ArrayList gibi.

Hashtable- düz eski karma tablo. (N) en kötü durumda O(1). Değeri ve tuşları özelliklerini sıralamak ve anahtar/val bulabilirsiniz.

Dictionary- güçlü bir jenerik ile yazılmış yukarıda sadece aynı, Dictionary<string, string> gibi

SortedList- genel sıralama listesi. Neyi nereye koyacağını anlamaya yana ekleme yavaşladı. Numaralama. tatil için önemi yok, çünkü alma konusunda muhtemelen aynı, ama silme düz eski bir liste daha yavaş olacaktır.

List Dictionary sürekli kullanma eğiliminde - bunları kesinlikle jenerik, geri genel olmayan standart olanlar için gitmek gerçekten zor ile yazılan kullanmaya başladığınızda.

Diğer veri yapıları da vardır - Bazı ilginç şeyler yapmak için kullanabileceğiniz, SortedDictionary var de faydalı olabilir KeyValuePair var.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ammine Getahun

    Ammine Getah

    21 HAZİRAN 2011
  • Epic Tutorials for iPhone, iPad and iOS

    Epic Tutoria

    18 EYLÜL 2011
  • Fuse

    Fuse

    21 Kasım 2005