Dica do dia em Scala – Array to Map e classificação de um mapa existente por chaves

De String Array para indexar Map em uma linha

Digamos que você tenha um String Arrayde valores únicos, por exemplo, um Arrayde nomes de coluna. E digamos que você precise pesquisá-los de maneira eficiente e obter o índice por nome.

Em Java, você simplesmente criaria um novo HashMap, iteria sobre a matriz e colocaria o valor String como chave e o índice como valor.

No Scala há uma maneira muito mais agradável e concisa

val indexByColName = columns.view.zipWithIndex.toMap

Classifique o mapa existente por suas chaves

Digamos que você tenha um mapa existente (por exemplo, o mapa do exemplo anterior) e deseja classificá-lo, aqui está um trecho rápido que o faz

val map = ... //some Map
val sortedMap
= TreeMap(map.toSeq:_*)

Isso é tudo, agora se você se perguntar o que é a coisa _ *, a resposta curta é que ela é usada para dizer ao compilador para passar cada elemento da sequência individualmente para uma função / método que aceita varargs

A longa resposta pode ser encontrada aqui