此代碼是從Scala的工作表:爲什麼Scala中的groupBy會更改列表項目的排序?
case class E(a: Int, b: String)
val l = List(
E(1, "One"),
E(1, "Another One"),
E(2, "Two"),
E(2, "Another Two"),
E(3, "Three")
)
l.groupBy(x => x.a)
// res11: scala.collection.immutable.Map[Int,List[com.dci.ScratchPatch.E]] =
// Map(
// 2 -> List(E(2,Two), E(2,Another Two)),
// 1 -> List(E(1,One), E(1,Another One)),
// 3 -> List(E(3,Three))
// )
你會發現,GROUPBY返回一個地圖,但該元素的順序是現在他們以前的方式不同。任何想法爲什麼發生這種情況,避免這種情況最好的辦法是什麼?
嗨@JacobusR。與其他許多關於SO的問題相比,你的問題寫得很好,但是我希望你下次考慮在代碼格式化方面做更多的努力。如果你問我,這幾乎是完全不可讀的,而且我通常更傾向於回答一個問題,如果我不必花一分鐘「解析」代碼:) – fresskoma
Hi @ x3ro,一百萬道歉!它完全放棄了我的想法。我正在忙着寫這個問題,有人走進我的辦公室,所以我剛剛發佈了它。 – Jack
哦,謝謝你的編輯@ x3ro。它看起來好多了:-) – Jack