По умолчанию Scala Map является несортированной коллекцией, но вы можете использовать ListMap :
val summedTuples = arrayTuples
.groupBy(_._1)
.mapValues(_.map(_._2).sum)
.toSeq.sortBy(_._1)
// ArrayBuffer((A,38), (B,1290), (C,515), (D,600))
ListMap(summedTuples: _*)
// Map(A -> 38, B -> 1290, C -> 515, D -> 600)
РЕДАКТИРОВАТЬ : Поэтому, перечитав вопрос вместе с пояснениями по поводу «первого столкновения», вместо того, чтобы просто удалить мой ответ, я адаптировал его чуть ниже. Я все еще предпочитаю принятый ответ выше, но не могу повредить иметь альтернативу:
import scala.collection.immutable.ListMap
val arrayTuples = Array(("A", 38) , ("B", 150), ("B", 250), ("B", 890), ("D", 600), ("C", 515))
val summedTuples = arrayTuples
.groupBy(_._1)
.mapValues(_.map(_._2).sum)
.toSeq.sortBy(k => arrayTuples.indexWhere(_._1 == k._1)) // yes, I'm sorting by the original order...
ListMap(summedTuples : _*) // Map(A -> 38, B -> 1290, D -> 600, C -> 515)