Scala Sortby

Scala Sortby
Pedir ou organizar os componentes em uma sequência seqüencial ou alfabética é o processo de classificação. Uma função de classificação exclusiva para coleções de Scala mutável e imutável é desenvolvida e é chamada de classificação Scala. Um ou mais atributos de uma coleção Scala podem ser classificados usando a função STELYBY. Ele usa uma função especificada no lado do usuário para classificar os componentes de uma coleção. A característica do Seq, inclui. Para classificar a coleção de acordo com nossas necessidades, podemos utilizar uma variedade de estruturas de dados e a função Sortby. Estudaremos o Scala Sortby sobre este tópico.

Sintaxe da função Sortby em Scala no Ubuntu 20.04

A função Sortyby classifica os elementos de uma lista de coleções que é mutável ou imutável. Internamente, faz uso do algoritmo de classificação de mesclagem que separa a lista de elementos em seções e classificações. A menos que um resultado de coleção classificado seja alcançado, isso continua recursivamente. A função Sortby aceita várias características para classificar a coleção com os componentes dispostos de acordo com o primeiro atributo primeiro, depois o segundo e assim por diante.

def Sortby [y] (f: (x) ⇒ y) (ordem implícita: matemática.Ordenando [y]): repr

Este Sortby requer dois parâmetros: a função a ser usada e o atributo para classificar por.

Exemplo 1: Usando Sortby para classificar uma matriz em Scala

O método Sortby pode ser usado para ordenar os objetos de acordo com um ou mais atributos de classe em Scala. Se o escopo contiver um tipo de campo de pedido, podemos utilizar esta abordagem. A ordem ascendente também é a ordem de classificação normal neste caso.

Temos um objeto "Data1" no qual criamos a classe de caso como o "médico". A aula de caso "Doctor" tem três atributos chamados no construtor "médico". Os atributos são dados como "id", "nome" e "salário". Os tipos de dados de atributos também são atribuídos. Em seguida, estabelecemos o método principal em que definimos três variáveis ​​- "D1", "D2" e "D3". Essas variáveis ​​invocaram a classe de caso "Doctor" e definiram os valores do atributo médico da classe para cada variável.

Declaramos outra variável "NullList" que é mantida vazia inicialmente. Primeiro, classificamos a lista com base no atributo "nome" que é chamado dentro da função Sortby. Em seguida, imprimimos a lista classificada com base no atributo "salário". A função Sortby é definida dentro da função Println. Quando os dados são classificados, eles serão impressos.

A saída mostra as duas listas classificadas geradas pela função Sortby com base nos atributos "nome" e "salário".

Exemplo 2: Usando Sortby para classificar uma matriz em ordem inversa em scala

No código anterior, utilizamos a função Sortby para classificar uma matriz e classifica a matriz em ordem ascendente. Ao alterar um pouco o procedimento, podemos colocar os dados em ordem decrescente da seguinte forma:

Dentro do "Data2", temos uma classe de "frutas" com os atributos definidos "id", "nome" e "preço". Cada atributo é definido com o tipo de dados. Em seguida, definimos o método principal em que atribuímos três variáveis ​​- "F1", "F2" e "F3". A classe "fruta" é invocada dentro de cada variável. Atribuímos o valor do atributo a ele.

Em seguida, geramos a lista vazia que é inicializada dentro da variável “EMP_LIST”. Atribuímos a função Sortby para classificar os dados em ordem inversa para a instrução println.

Os dados classificados são obtidos com base no atributo "nome" em ordem decrescente, como mostrado no seguinte prompt:

Exemplo 3: Usando Sortby para classificar pelo segundo atributo em Scala

Essa abordagem, que classifica os dados coletados sobre o primeiro atributo, também é útil para agrupar os dados com base em vários atributos. Nesse caso, o segundo atributo é usado para classificar o primeiro atributo se seus valores forem iguais.

Dentro do nosso objeto "Data3", definimos a classe de caso "aluno". O construtor é criado para os atributos da classe Case "que leva os atributos" ID "," Nome "e" Marks ". Cada atributo tem o tipo de dados associado. Em seguida, definimos os valores contra cada atributo em nosso método principal. Existem seis variáveis ​​declaradas como "S1", "S2", "S3", "S4", "S5" e, "S6". Dentro dessas variáveis, chamamos a aula de "aluno" e passamos os valores para cada atributo de acordo com o tipo especificado.

Depois disso, temos uma variável "s_list" onde o vazio é criado. Em seguida, temos uma declaração impressa onde a função Sortby é chamada. Fornecemos dois atributos, "Nome" e "Marks", para a função Sortby.

Como você pode ver na produção, repetimos os nomes dos alunos. Então, a função Sortby classificou os dados de acordo com o segundo atributo que é "marcas".

Exemplo 4: Usando Sortby para classificar um valor de mapa em Scala

Usando a técnica Sortby, podemos encomendar o mapa por chave, de baixa a alta ou de alta a baixa. Vamos tentar compreendê -lo melhor usando um exemplo:

Para usar o ListMap, importamos o pacote Scala para ele. Em seguida, criamos o objeto "Data4" e chamamos a definição do método principal dentro dele. Em seguida, dentro da seção principal, declaramos a variável "mapa" e definimos a função do mapa nela.

A função do mapa tem três pares de chave/valor. Para classificar o mapa por valor, estabelecemos outra variável "resultado" e chamamos o ListMap. No ListMap, temos o Toseq.Sortby função que classifica o mapa por valor em uma sequência de mapa.

Da função Sortby, classificamos o mapa por valor em uma sequência de mapa da Scala. O resultado do mapa classificado é exibido na captura de tela a seguir do terminal:

Conclusão

No artigo acima mencionado, aprendemos sobre as funções do Sortby no paradigma de programação orientado a objetos de Scala. Descobrimos que, usando o método Sortby, poderíamos criar uma coleção ordenada e classificada com apenas uma linha de código. Aprendemos como o método Scala Sortby funciona com vários atributos para classificar os dados adequadamente. Como resultado, o Scala Sortby fornece um método claro e eficaz para classificar em Scala.