Skip to content

Instantly share code, notes, and snippets.

@seraphr
Created January 22, 2015 11:26
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save seraphr/4a312681b37afa1d4f64 to your computer and use it in GitHub Desktop.
Save seraphr/4a312681b37afa1d4f64 to your computer and use it in GitHub Desktop.
scala> case class Base(id: String, data: String)
defined class Base
scala> case class Merged(id: String, dataList: Seq[String])
defined class Merged
scala>
scala> val tSeq = Seq(Base("c", "c2"), Base("a", "a1"), Base("c", "c3"), Base("a", "a2"), Base("b", "b"), Base("c", "c1"))
tSeq: Seq[Base] = List(Base(c,c2), Base(a,a1), Base(c,c3), Base(a,a2), Base(b,b), Base(c,c1))
scala> tSeq.groupBy(_.id).map {
| case (id, bases) => Merged(id, bases.map(_.data))
| }
res0: scala.collection.immutable.Iterable[Merged] = List(Merged(b,List(b)), Merged(a,List(a1, a2)), Merged(c,List(c2, c3, c1)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment