fork download
  1. object Main extends App {
  2.  
  3. sealed trait Fruit
  4.  
  5. case class Apple(id: Int, sweetness: Int) extends Fruit
  6.  
  7. case class Pear(id: Int, color: String) extends Fruit
  8.  
  9. val fruit = Set(Apple(1, 1), Pear(1, "Green"), Apple(2, 2), Pear(2, "Yellow"))
  10. val grouped = fruit.groupBy(_.getClass)
  11.  
  12. println(grouped.keys.map(_.getSimpleName).mkString(", "))
  13. println(grouped.values.map(_.size).mkString(", "))
  14. }
Success #stdin #stdout 0.39s 382144KB
stdin
Standard input is empty
stdout
Apple, Pear
2, 2