Ten kod jest od Scala Arkusz:Dlaczego groupBy w Scali zmienia kolejność elementów listy?
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))
// )
Można zauważyć, że GroupBy zwraca mapę, ale kolejność elementów jest teraz inna, jakie były wcześniej. Masz pomysł, dlaczego tak się dzieje i jak najlepiej tego uniknąć?
Hi @JacobusR. Twoje pytanie jest dobrze napisane w porównaniu z wieloma innymi pytaniami na temat SO, ale mam nadzieję, że następnym razem będziesz zastanawiał się, jak włożyć więcej wysiłku w formatowanie kodu. Jeśli pytasz mnie, to było prawie całkowicie nieczytelne i generalnie jestem bardziej skłonny odpowiedzieć na pytanie, jeśli nie muszę spędzić minuty "parsując" kod pierwszy :) – fresskoma
Hi @ x3ro, milion przeprosin! To całkowicie wymknęło mi się z głowy. Byłem zajęty pisaniem tego pytania i ktoś wszedł do mojego biura, więc właśnie to opublikowałem. – Jack
Aha, i dziękuję za edycję @ x3ro. Wygląda znacznie lepiej :-) – Jack