2013-08-02 21 views
6

Bir Haritadan ilk 'N' öğelerini çıkarmak için zarif bir yöntem var mı?Scala'daki ilk 'N' öğelerini seçin

Yeni bir Harita oluşturabilir ve seçilecek değerler üzerinde yineleyebilir, bunu gerçekleştiren bir işlev var mı? Map üzerinde take yöntemi için the docs kaynaktan

cevap

13

:

seçer ilk N elemanları.

Not: temel koleksiyon türü sipariş edilmedikçe, farklı çalışmalar için farklı sonuçlar döndürebilir. toplama sipariş edilmez haritaların durumunda

yüzden ilk n elemanlarının ilk n elemanları-aslında kavramı gelmez alma konusunda sayılmaz haritalar için bile var. Bu durumda
scala> Map('a -> 1, 'b -> 2, 'c -> 3).take(2) 
res1: scala.collection.immutable.Map[Symbol,Int] = Map('a -> 1, 'b -> 2) 

Eğer birinci oldu iki öğe almak için ne:

Ama take size bazı ilk n unsurları verecektir ve bu gibi sesler ne istiyorsun tanımı, ama bu gerçekleşmeye güvenmeyin.

0
scala> val map = Map[String,Int]("one"->1,"two"->2,"three"->3) 
map: scala.collection.immutable.Map[String,Int] = 
          Map(one -> 1, two -> 2, three -> 3) 

scala> val n = 2 
n: Int = 2 

scala> val firstN = map.take(n) 
firstN: scala.collection.immutable.Map[String,Int] = Map(one -> 1, two -> 2) 
0

SortedMap ve diğerlerinin de tartıştığı gibi take(n)'u aradığınız gibi görünüyor.

İlgili konular