SORU
3 AĞUSTOS 2011, ÇARŞAMBA


Ne zaman Scala Vektör seçmeliyim?

Vector Scala koleksiyonları partiye geç geldi gibi görünüyor, ve tüm etkili blog gönderilerini çoktan gitmişti.

Java ArrayList LinkedList kullanıyor olabilir ama bir algoritma düşündüm sadece varsayılan koleksiyon ve yeterince optimize etmek ister. Scala List aslında daha uygun olduğunda benim varsayılan olarak Vector Seq ya da dışarı çalışmak gerekir?

CEVAP
3 AĞUSTOS 2011, ÇARŞAMBA


Genel bir kural olarak, Vector kullanarak gerçekler. Daha hızlı List için iyidirneredeyseher şeyi ve daha fazla bellek-verimli büyük-daha-önemsiz dizileri bulunur. Vektör göreli performansı diğer koleksiyonlara göre documentation bunu görüyor. Vector ile ilgili bazı olumsuzlukları vardır. Özellikle:

  • Başta güncellemeler List (olmasa da düşündüğün kadar fazla) daha yavaş

Scala 2.10 önce başka bir dezavantajı eşleştirme desteği List, ama bu : : genelleştirilmiş presi ile 2.10 içinde düzeltilmesi için daha iyi olduğunu desen.

Ayrıca bu soru yaklaşmanın daha soyut cebirsel bir yolu var: ne tür bir dizi yapmakkavramsal olarakvar? Ayrıca, sen nesinkavramsal olarakbunu yapıyor? Eğer döndüren bir işlev görecek olursam Option[A] Bu işlev, kendi alanında bazı delikler (ve böylece kısmi) olduğunu biliyorum. Koleksiyonlar için aynı mantığı uygulayabiliriz.

Eğer List[A] yazın dizisi var eğer etkili iki şey iddia ediyorum. İlk olarak, benim algoritması (veri) tamamen yığını bir yapıya sahip. İkinci olarak, Bu koleksiyon ile yapacağım tek şey tam, O(n) dolaşımları olduğunu iddia ediyorum. Bu iki gerçekten el-ele gidin. Eğer Vector[A] türü bir şey varsa tersine,sadeceiddia olduğum şey benim veri iyi tanımlanmış bir düzen ve sonlu bir uzunluğa sahiptir. Böylece, iddialar ** 16 yaşında, zayıf, ve bu onun daha fazla esneklik yol açar.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • NCIX Tech Tips

    NCIX Tech Ti

    2 Ocak 2007
  • RD

    RD

    19 NİSAN 2006
  • THE RED DRAGON

    THE RED DRAG

    6 ŞUBAT 2009