SORU
18 EKİM 2011, Salı


Ne'In ters en iyi yolu tür scala?

Scala ters sıralama yapmak için en iyi yolu nedir? Aşağıdaki biraz yavaş olduğunu düşünüyorum.

list.sortBy(_.size).reverse

SortBy kullanarak ama ters bir sıralama elde conveinient bir yolu var mı? sortWith kullanmaya ihtiyacım olmaz.

CEVAP
18 EKİM 2011, Salı


Bazı sayısal değere göre sıralama ise tabelayı değiştirme bariz şekilde olabilir

list.sortBy(- _.size)

Daha genel olarak, açık ve Sipariş yapabilirsiniz hangi yöntem örtülü bir Sıralama ile sıralanmış, tarafından yapılabilir bir sıralama ters (liste aşağıda ters değil) Yapabilirsiniz

list.sorted(theOrdering.reverse)

Eğer ters çevirmek istediğiniz sipariş örtülü sipariş, dolaylı olarak[Sipariş[A]] (sipariş üzerine sen Bir türü) veya daha iyi Sıralama[A] alabilirsiniz. O olurdu

list.sorted(Ordering[TheType].reverse)

sortBy ordering.by bunu yapabilirsiniz kullanarak gibi

list.sorted(Ordering.by(_.size).reverse)

Belki de yazmak için en kısa (eksi kıyasla) ama niyet belli değil

Güncelleme

Son satırı çalışmıyor. Ordering.by(_.size) derleyici _ kabul yazın böylece sipariş, biz hangi _ bilmesi gerekir. Bu listenin öğe türü olurdu, ama öyle değil, sıralanır imzası gibi görünüyor olabilir def sorted[B >: A](ordering: Ordering[B]). Sipariş A (byHashCode : Ordering[Any] = Ordering.by(_.hashCode) kullanabilirsiniz) herhangi bir atası A, ama aynı zamanda olabilir. Ve gerçekten de, liste kovaryant aslında bu imza zorlar. Yapabilirsiniz

list.sorted(Ordering.by((_: TheType).size).reverse)

ama bu çok daha keyifli.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Kap Slap

    Kap Slap

    8 Mart 2010
  • Menglong Tav

    Menglong Tav

    18 Temmuz 2010
  • williamfitzsimmons

    williamfitzs

    14 Mart 2008