Hvordan sortere 2d Array i Java

Hvordan Sortere 2d Array I Java



En todimensjonal eller 2D-array er en samling av kolonner og rader. Programmerere kan tilfeldig få tilgang til 2D-array-elementene eller hver celle individuelt ved å bruke indeksene deres. Ved hjelp av sortering ordnes array-elementer i henhold til kravene, enten det er i stigende eller synkende rekkefølge. Mer spesifikt, Java ' Array.sort() ” kan brukes for elementene i en 2D-array i et program.

Denne opplæringen vil diskutere hvordan du sorterer 2D-matriser i Java.

Hvordan sortere 2D-array i Java?

I Java kan du sortere en 2D-matrise ved å bruke:







Vi vil nå diskutere hver av de nevnte metodene en etter en.



Metode 1: Radvis sortering av 2D Array i Java

Ved radvis sortering kan du bruke ' Array.sort() ”-metoden for å sortere array-elementene. Den itererer hvert element i en bestemt rad og bytter heltallene når det gjeldende elementet er større enn det neste.



La oss ta en titt på et eksempel for å forstå implementeringssiden.





Eksempel
I dette eksemplet vil vi først lage en statisk metode ' rowWiseSorting() ' for å sortere matrisen i stigende rekkefølge ved å ringe ' Arrays.sort() '-metoden til Arrays-klassen og skriv deretter ut de sorterte elementene i matrisen ved å bruke ' til 'løkker:

statisk int rowWiseSorting ( int arr [ ] [ ] ) {
til ( int Jeg = 0 ; Jeg < arr. lengde ; Jeg ++ ) {
Matriser. sortere ( arr [ Jeg ] ) ;
}
til ( int Jeg = 0 ; Jeg < arr. lengde ; Jeg ++ ) {
til ( int j = 0 ; j < arr [ Jeg ] . lengde ; j ++ ) {
System. ute . skrive ut ( arr [ Jeg ] [ j ] + ' ' ) ;
}
System. ute . println ( ) ;
}
komme tilbake 0 ;
}

Her har vi en 2D-array kalt ' arr ” av 3×3 matriseform (tre rader og tre kolonner). Nå, for å sortere radene i den opprettede matrisen, vil vi kalle metoden ' rowWiseSorting() ' ved å sende array som et argument i main()-metoden:



offentlig statisk tomrom hoved- ( String [ ] args ) {
int arr [ ] [ ] = ny int [ ] [ ] {
{ 12 , 14 , 4 } ,
{ 14 , 23 , tjue } ,
{ 28 , 25 , 8 } ,
{ elleve , 5 , 1 } } ;
rowWiseSorting ( arr ) ;
}
}

Som du kan se, har vi sortert matrisen vår i stigende rekkefølge:

Vil du prøve ut kolonnevis sortering i Java? Ta en titt på følgende avsnitt.

Metode 2: Kolonnevis sortering av 2D Array i Java

For å kolonnevis sortere en 2D-array i Java, ring ' Arrays.sort() ' metode med en ' Komparatorgrensesnitt '. Et komparatorgrensesnitt definerer en ' sammenligne() ” metode som aksepterer to parametere og deretter sammenligner dem med hverandre. Hvis de passerte parameterne er like, returnerer den null. Hvis den første parameteren er større enn den andre parameteren, returnerer den en positiv verdi. Hvis ikke, returneres en negativ verdi.

Eksempel
I dette eksemplet vil vi lage en metode som heter ' columnWiseSorting() ' med to argumenter, en 2D-matrise ' arr[][] ' og et kolonnenummer kalt ' oversikt '. Deretter ringer du ' Arrays.sort() '-metoden med ' Komparatorgrensesnitt ' for å sammenligne verdiene til en kolonne. Til slutt vil vi skrive ut verdiene til den sorterte kolonnen med matrise ved å bruke ' til 'løkker:

statisk tomrom columnWiseSorting ( int arr [ ] [ ] , int oversikt ) {
Matriser. sortere ( arr , ny Komparator < int [ ] > ( ) {
offentlig int sammenligne ( int [ ] først , int [ ] scnd ) {
hvis ( først [ oversikt - 1 ] > scnd [ oversikt - 1 ] ) {
komme tilbake 1 ;
}
ellers komme tilbake - 1 ;
}
} ) ;
}
til ( int Jeg = 0 ; Jeg < arr. lengde ; Jeg ++ ) {
til ( int j = 0 ; j < arr [ Jeg ] . lengde ; j ++ ) {
System. ute . skrive ut ( arr [ Jeg ] [ j ] + ' ' ) ;
}
System. ute . println ( ) ;
}

Vi vil bruke den allerede opprettede matrisen kalt ' arr ' og gi den til ' columnWiseSorting() ' som første parameter og ' 1 ' som den andre parameteren:

columnWiseSorting ( arr , 1 ) ;

Utførelse av programmet ovenfor vil sortere den første kolonnen i 2D-arrayen vår:

Vi samler all viktig informasjon for å sortere 2D-matrisen i Java.

Konklusjon

I Java kan en 2D-matrise sorteres radvis eller kolonnevis i henhold til kravene. For radvis sortering brukes bare Array.sort()-metoden; Ved kolonnevis sortering kalles imidlertid Array.sort()-metoden med Comparator-grensesnittet. For radvis sortering sendes ingen parameter til Array.sort()-metoden, mens i den kolonnevise sorteringsmetoden er antall kolonner som må sorteres nevnt som en parameter. Denne opplæringen diskuterte metodene for å sortere 2D-arrayen i Java med eksempler.