Selles õpetuses käsitletakse 2D-massiivide sortimist Javas.
Kuidas sortida 2D-massiivi Javas?
Javas saate 2D-massiivi sortida, kasutades:
Nüüd käsitleme kõiki nimetatud meetodeid ükshaaval.
1. meetod: 2D-massiivi reapõhine sortimine Javas
Reapõhises sortimises saate kasutada ' Array.sort() ” meetod massiivi elementide sortimiseks. See kordab konkreetse rea iga elementi ja vahetab täisarvud, kui praegune element on suurem kui järgmine.
Rakenduse poole mõistmiseks vaatame näidet.
Näide
Selles näites loome kõigepealt staatilise meetodi ' rowWiseSorting() ' massiivi järjestamiseks kasvavas järjekorras, helistades ' Massiivid.sort() ' meetodit massiivid klassi ja seejärel printige massiivi sorteeritud elemendid kasutades ' jaoks 'silmused:
jaoks ( int i = 0 ; i < arr. pikkus ; i ++ ) {
Massiivid. sorteerida ( arr [ i ] ) ;
}
jaoks ( int i = 0 ; i < arr. pikkus ; i ++ ) {
jaoks ( int j = 0 ; j < arr [ i ] . pikkus ; j ++ ) {
Süsteem. välja . printida ( arr [ i ] [ j ] + ' ' ) ;
}
Süsteem. välja . println ( ) ;
}
tagasi 0 ;
}
Siin on meil 2D massiiv nimega ' arr ” 3×3 maatriksvormiga (kolm rida ja kolm veergu). Nüüd kutsume loodud massiivi ridade sortimiseks meetodi ' rowWiseSorting() ', edastades massiivi argumendina meetodi main() korral:
avalik staatiline tühine peamine ( String [ ] args ) {
int arr [ ] [ ] = uus int [ ] [ ] {
{ 12 , 14 , 4 } ,
{ 14 , 23 , kakskümmend } ,
{ 28 , 25 , 8 } ,
{ üksteist , 5 , 1 } } ;
rowWiseSorting ( arr ) ;
}
}
Nagu näete, oleme oma massiivi järjestanud kasvavas järjekorras:
Kas soovite proovida Java-s veerupõhist sorteerimist? Vaadake järgmist jaotist.
2. meetod: 2D-massiivi veerupõhine sortimine Javas
Javas 2D-massiivi veerupõhiseks sortimiseks helistage Massiivid.sort() ' meetod koos ' Võrdleja liides ”. Võrdleja liides määratleb ' võrdlema() ” meetod, mis aktsepteerib kahte parameetrit ja seejärel võrdleb neid omavahel. Kui edastatud parameetrid on võrdsed, tagastab see nulli. Kui 1. parameeter on suurem kui 2. parameeter, tagastab see positiivse väärtuse. Kui ei, tagastatakse negatiivne väärtus.
Näide
Selles näites loome meetodi nimega ' veergWiseSorting() ' kahe argumendiga 2D massiiv ' arr[][] ' ja veeru number nimega ' ülevaadet ”. Seejärel helistage ' Massiivid.sort() ' meetod koos ' Võrdleja liides ', et võrrelda veeru väärtusi. Lõpuks prindime massiivi sorteeritud veeru väärtused kasutades ' jaoks 'silmused:
Massiivid. sorteerida ( arr , uus Võrdleja < int [ ] > ( ) {
avalik int võrdlema ( int [ ] esimene , int [ ] scnd ) {
kui ( esimene [ ülevaadet - 1 ] > scnd [ ülevaadet - 1 ] ) {
tagasi 1 ;
}
muidu tagasi - 1 ;
}
} ) ;
}
jaoks ( int i = 0 ; i < arr. pikkus ; i ++ ) {
jaoks ( int j = 0 ; j < arr [ i ] . pikkus ; j ++ ) {
Süsteem. välja . printida ( arr [ i ] [ j ] + ' ' ) ;
}
Süsteem. välja . println ( ) ;
}
Kasutame juba loodud massiivi nimega ' arr ja edastage see jaotisele veergWiseSorting() ' esimese parameetrina ja ' 1 ” teise parameetrina:
veergWiseSorting ( arr , 1 ) ;
Ülaltoodud programmi täitmine sorteerib meie 2D-massiivi esimese veeru:
Kogume Java 2D-massiivi sortimiseks kogu olulise teabe.
Järeldus
Javas saab 2D-massiivi vastavalt nõuetele sortida ridade või veergude kaupa. Reapõhiseks sortimiseks kasutatakse ainult meetodit Array.sort(); veerupõhises sortimises kutsutakse aga meetodit Array.sort() koos Comparator liidesega. Reapõhise sortimise korral ei edastata meetodile Array.sort() ühtegi parameetrit, samas kui veerupõhise sortimise meetodi puhul mainitakse parameetrina sortimist vajavate veergude arvu. Selles õpetuses käsitleti 2D-massiivi sortimise meetodeid Java-s näidetega.