Maps, Sets, and Grouping
Sorted Summary
Make a sorted, de-duplicated summary string.
sorted-summary
`distinct` drops repeats and `sorted` orders the result. Joining the values gives a stable summary string that does not depend on input order.
Sorted Summary
SortedSummary.scala
Replay: real traced execution (multi-file project)
object Main {
def main(args: Array[String]): Unit = {
val first = 3
val nums = List(first, 1, 2, 1, first)
val unique = nums.distinct.sorted
val text = unique.mkString(",")
println("count=" + unique.length)
println("text=" + text)
}
}
object Main {
def main(args: Array[String]): Unit = {
val first = 5
val nums = List(first, 1, 2, 1, first)
val unique = nums.distinct.sorted
val text = unique.mkString(",")
println("count=" + unique.length)
println("text=" + text)
}
}
object Main {
def main(args: Array[String]): Unit = {
val first = 9
val nums = List(first, 1, 2, 1, first)
val unique = nums.distinct.sorted
val text = unique.mkString(",")
println("count=" + unique.length)
println("text=" + text)
}
}
first ← 3, nums ← List(3, 1, 2, 1, 3), unique ← List(1, 2, 3)
1object Main {2 def main(args: Array[String]): Unit = {3 val first→ 3 = 3 //@first=5, 94 val nums→ List(3, 1, 2, 1, 3) = List(first3, 1, 2, 1, first)5 val unique→ List(1, 2, 3) = nums.distinctList(3, 1, 2).sorted6 val text→ 1,2,3 = uniqueList(1, 2, 3).mkString(",")78 println("count=" + unique.length3)9 println("text=" + text1,2,3)10 }11}outputcount=3 text=1,2,3
first ← 5, nums ← List(5, 1, 2, 1, 5), unique ← List(1, 2, 5)
1object Main {2 def main(args: Array[String]): Unit = {3 val first→ 5 = 54 val nums→ List(5, 1, 2, 1, 5) = List(first5, 1, 2, 1, first)5 val unique→ List(1, 2, 5) = nums.distinctList(5, 1, 2).sorted6 val text→ 1,2,5 = uniqueList(1, 2, 5).mkString(",")78 println("count=" + unique.length3)9 println("text=" + text1,2,5)10 }11}outputcount=3 text=1,2,5
first ← 9, nums ← List(9, 1, 2, 1, 9), unique ← List(1, 2, 9)
1object Main {2 def main(args: Array[String]): Unit = {3 val first→ 9 = 94 val nums→ List(9, 1, 2, 1, 9) = List(first9, 1, 2, 1, first)5 val unique→ List(1, 2, 9) = nums.distinctList(9, 1, 2).sorted6 val text→ 1,2,9 = uniqueList(1, 2, 9).mkString(",")78 println("count=" + unique.length3)9 println("text=" + text1,2,9)10 }11}outputcount=3 text=1,2,9