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:
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:
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.