Scala: groupBy

Definicja metody dla kolekcji scala.collection.immutable.List

def groupBy[K](f: (A) ⇒ K): Map[K, List[A]]

f – funkcja „podziału” na grupy
K – typ kluczy

Przykład: grupowanie listy napisów wg ich długości:

scala> val list = List("ala", "ma", "kota")
list: List[java.lang.String] = List(ala, ma, kota)

scala> list.groupBy(x => x.length)
res0: scala.collection.immutable.Map[Int,List[java.lang.String]]
  = Map(3 -> List(ala), 4 -> List(kota), 2 -> List(ma))

Przykład: grupowanie listy znaków wg ilości wystąpień w danej liście:

scala> val list = List('a', 'b', 'a')
list: List[Char] = List(a, b, a)

scala> list.groupBy(x => list.count(_ == x))
res0: scala.collection.immutable.Map[Int,List[Char]]
  = Map(1 -> List(b), 2 -> List(a, a))

Posted on 15/12/2012, in Scala and tagged . Bookmark the permalink. Dodaj komentarz.

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s

%d bloggers like this: