Group values into labeled buckets.

Grouping

Grouping.scala
object Main {
  def main(args: Array[String]): Unit = {
    val pivot = 
    val nums = List(1, 2, 3, 4, 5, 6)
    val groups = nums.groupBy(n => if (n <= pivot) "low" else "high")
    val low = groups.getOrElse("low", List()).size
    val high = groups.getOrElse("high", List()).size

    println("low=" + low)
    println("high=" + high)
  }
}
object Main {
  def main(args: Array[String]): Unit = {
    val pivot = 
    val nums = List(1, 2, 3, 4, 5, 6)
    val groups = nums.groupBy(n => if (n <= pivot) "low" else "high")
    val low = groups.getOrElse("low", List()).size
    val high = groups.getOrElse("high", List()).size

    println("low=" + low)
    println("high=" + high)
  }
}
object Main {
  def main(args: Array[String]): Unit = {
    val pivot = 
    val nums = List(1, 2, 3, 4, 5, 6)
    val groups = nums.groupBy(n => if (n <= pivot) "low" else "high")
    val low = groups.getOrElse("low", List()).size
    val high = groups.getOrElse("high", List()).size

    println("low=" + low)
    println("high=" + high)
  }
}
grouping `groupBy` sorts elements into buckets keyed by a label function. Reading each bucket's size reports how many elements landed in it.