如果你想自己动手并了解它是如何工作的,你可以试试这个:
scala> case class Person(name: String, surname: String, age:Int)
defined class Person
scala> val people = List(Person("Alice", "Wonderland", 42), Person("Bob", "Father", 42), Person("Bob", "Son", 20))
people: List[Person] = List(Person(Alice,Wonderland,42), Person(Bob,Father,42), Person(Bob,Son,20))
scala> val names = people.map(_.name).distinct
names: List[String] = List(Alice, Bob)
scala> names.map(n => n -> people.filter(_.name == n)).toMap
res0: scala.collection.immutable.Map[String,List[Person]] = Map(Alice -> List(Person(Alice,Wonderland,42)), Bob -> List(Person(Bob,Father,42), Person(Bob,Son,20)))
干杯