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
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.
Clojure, ne zaman bir liste üzerinde b...
Parantez ve parantez, Scala, resmi ara...
Sınıf Joda Zaman kırık hata Scala kull...
Ne zaman SAX StAX üzerinden seçmeliyim...
Apaçık bir Scala nedir ve ne zaman iht...