Ist es möglich, einen ArrayBuffer oder eine andere veränderbare Scala-Sammlung zu sortieren? Ich sehe, dass ArrayBuffer.sorted (und sortBy) eine neue Sammlung zurückgibt und Sorting.quicksort ein Array an Ort und Stelle sortiert, aber nicht mit ArrayBuffers.Können Sie eine veränderbare Scala-Sammlung an Ort und Stelle sortieren?
Der Grund, warum ich frage, ist, dass ich combineByKey in Spark verwende, um Sammlungen von gewerteten Objekten zu erstellen, die in der Größe begrenzt sind (wie eine "Top-Ten" -Liste nach Schlüssel). Wenn ich ein neues Objekt einfüge und die Sammlung bereits voll ist, muss ich das Objekt mit der niedrigsten Punktzahl fallen lassen. Ich könnte eine sortierte Sammlung wie eine PriorityQueue oder SortedSet verwenden, aber ich muss die Sammlungen nicht ständig sortiert halten, sondern nur dann, wenn eine Sammlung voll ist.
Gibt es eine Möglichkeit, einen ArrayBuffer oder ListBuffer zu sortieren? Oder gibt es eine andere Sammlung, die das Anhängen und Sortieren unterstützt? Ich bin mir sicher, dass es einen besseren Weg dafür gibt, aber ich bin neu in Scala.
Related: http://StackOverflow.com/Questions/4686184/Scala-Sort-Indexedseq-in -Platz, aber nicht wirklich eine Antwort (es gab eine neuere Frage in '14 für diese geschlossen .. nicht sicher, ob '15 bringt relevante Änderungen) – user2864740