Scala sortby

Scala sortby
Å bestille eller organisere komponentene i en sekvensiell eller alfabetisk sekvens er sorteringsprosessen. En unik sorteringsfunksjon for både mutable og uforanderlige skala -samlinger er utviklet og blir referert til som Scala Sort. En eller flere attributter til en Scala -samling kan sorteres ved hjelp av sortyby -funksjonen. Den bruker en funksjon som er spesifisert på brukersiden for å sortere komponentene i en samling. Den seqligike egenskapen inkluderer det. For å sortere samlingen etter våre behov, kan vi bruke en rekke datastrukturer og sortby -funksjonen. Vi vil studere Scala sortby om dette emnet.

Syntaks av sortby -funksjonen i Scala i Ubuntu 20.04

Sortyby -funksjonen sorterer elementene i en samlingsliste som enten er mutable eller uforanderlig. Internt benytter det seg av Merge Sort -algoritmen som skiller elementlisten i seksjoner og sorterer over dem. Med mindre et sortert samlingsresultat er nådd, fortsetter dette rekursivt. Sortby -funksjonen godtar flere egenskaper for å sortere samlingen med komponentene som er arrangert i henhold til den første attributtet først, deretter den andre, og så videre.

def sortby [y] (f: (x) ⇒ y) (implisitt ordre: matematikk.Bestilling [y]): repr

Denne sortbyen krever to parametere: funksjonen som skal brukes og attributtet til sortering etter.

Eksempel 1: Bruke sortby for å sortere en matrise i Scala

Sortby -metoden kan brukes til å bestille objektene i henhold til en eller flere klasseattributter i Scala. Hvis omfanget inneholder en bestillingsfelttype, kan vi bruke denne tilnærmingen. Stigende orden er også den normale sorteringsrekkefølgen i dette tilfellet.

Vi har et objekt “Data1” der vi opprettet saksklassen som “lege”. "Doktor" -klassen har tre attributter som kalles i "Doctor" -konstruktøren. Attributtene er gitt som "id", "navn" og "lønn". Datatyper av attributter er også tildelt. Deretter etablerte vi hovedmetoden der vi definerte tre variabler - “D1”, “D2” og “D3”. Disse variablene påkalte saksklassen "lege" og satte verdiene til case class lege -attributtet for hver variabel.

Vi erklærte en annen variabel "nulllist" som først holdes tom. Først sorterte vi listen basert på "Navn" -attributtet som kalles inne i sortby -funksjonen. Deretter trykket vi den sorterte listen basert på "lønn" -attributtet. Sortby -funksjonen er satt inn i println -funksjonen. Når dataene er sortert, vil de bli skrevet ut.

Utgangen viser begge sorterte lister generert av sortby -funksjonen basert på "Navnet" og "lønn" -attributtene.

Eksempel 2: Bruke sortby for å sortere en matrise i omvendt rekkefølge i Scala

I forrige kode benyttet vi sortby -funksjonen for å sortere en matrise, og den sorterer matrisen i stigende rekkefølge. Ved å endre prosedyren litt, kan vi sette dataene i synkende rekkefølge som følger:

Inne i "Data2" har vi en "frukt" -klasse med de definerte attributtene "ID", "Navn" og "Pris". Hver attributt er satt med datatypen. Deretter satte vi hovedmetoden der vi tildelte tre variabler - “F1”, “F2” og “F3”. "Frukt" -klassen blir påkalt i hver variabel. Vi tildelte attributtets verdi til den.

Deretter genererte vi den tomme listen som er initialisert inne i "emp_list" -variabelen. Vi tildelte sortby -funksjonen for å sortere dataene i omvendt rekkefølge til Println -setningen.

De sorterte dataene er innhentet basert på "Navn" -attributtet i synkende rekkefølge som vist i følgende ledetekst:

Eksempel 3: Bruke sortby for sortering etter det andre attributtet i Scala

Denne tilnærmingen, som sorterer de innsamlede dataene om den første attributtet, er også nyttig for å gruppere dataene basert på mange attributter. I dette tilfellet brukes den andre attributtet til å sortere det første attributtet hvis verdiene er de samme.

Innenfor vårt objekt “Data3” definerte vi saksklassen “Student”. Konstruktøren er opprettet for saksklassen "Student" som tar "ID", "Navn" og "Marks" -attributter. Hver attributt har den tilhørende datatypen. Deretter setter vi verdiene mot hver attributt i hovedmetoden vår. Det er seks variabler erklært som "S1", "S2", "S3", "S4", "S5" og "S6". Innenfor disse variablene kalte vi "student" -klassen og passerte verdiene for hver attributt i henhold til den spesifiserte typen.

Etter det har vi en variabel "s_list" der den tomme opprettes. Deretter har vi en trykt uttalelse der sortby -funksjonen kalles. Vi ga to attributter, "navn" og "merker", til sortby -funksjonen.

Som du kan se i utdataene, gjentok vi studentene på studentene. Så sortby -funksjonen sorterte dataene i henhold til den andre attributtet som er "merker".

Eksempel 4: Bruke sortby for å sortere en kartverdi i Scala

Ved hjelp av sortby -teknikken kan vi bestille kartet etter nøkkel, enten fra lav til høy eller fra høy til lav. La oss forsøke å forstå det bedre ved å bruke et eksempel:

For å bruke ListMap, importerte vi Scala -pakken for den. Deretter opprettet vi “Data4” -objektet og kalte definisjonen av hovedmetoden inne i den. Neste, innenfor hoveddelen, erklærte vi variabelen "kartet" og angir kartfunksjonen i den.

Kartfunksjonen har tre nøkkel/verdipar. For å sortere kartet etter verdi, etablerte vi en annen variabel "resultat" og kalte listmappen. I listmappen har vi Toseq.sortby -funksjon som sorterer kartet etter verdi i en kartsekvens.

Fra sortby -funksjonen sorterte vi kartet etter verdi i en Scala -kartsekvens. Utfallet for det sorterte kartet vises i følgende skjermbilde av terminalen:

Konklusjon

Fra den nevnte artikkelen lærte vi om sortby-funksjonene i det skala-objektorienterte programmeringsparadigmet. Vi oppdaget at vi ved å bruke sortby -metoden kunne lage en bestilt, sortert samling med bare en kodeinje. Vi lærte hvordan Scala sortby -metoden fungerer med flere attributter for å sortere dataene på riktig måte. Som et resultat gir Scala Sortby en klar og effektiv metode for sortering i Scala.