how sort an array java tutorial with examples
Acest tutorial va explica diverse metode pentru a sorta o matrice în Java în ordine crescătoare, descendentă și alfabetică cu ajutorul unor exemple simple:
Sortarea aranjează datele într-o anumită ordine. Datele computerizate constau din înregistrări formate din unul sau mai multe câmpuri. Pentru a utiliza datele în mod eficient și pentru a efectua diverse operațiuni precum căutarea, accesarea etc., este recomandabil ca aceste date să fie aranjate într-o anumită ordine.
De exemplu, dacă există numeroase înregistrări ale datelor studenților, am putea aranja aceste date în funcție de ID-ul studentului sau de numele studentului. Aceasta este denumită triere. Prin urmare, sortarea este esențială pentru a utiliza datele mai eficient și mai ușor.
=> Vizitați aici Tutorialul de instruire Java
În Java, matricile conțin date și ar trebui să sortăm aceste date pentru a le aranja în conformitate cu unele criterii furnizate. În acest tutorial, vom discuta despre sortarea matricelor în detaliu, împreună cu exemple simple.
Ce veți învăța:
Cum să sortați o matrice în Java
Java oferă următoarele metode pentru a sorta matricele.
- Utilizarea pentru bucle: Puteți utiliza pentru bucle pentru a traversa matricea și a compara elementele adiacente în timp ce le parcurgeți și le puneți în ordine.
- Folosind metoda Sortare: Clasa Arrays a pachetului ‘java.util’ oferă metoda de sortare care ia o matrice ca argument și sortează matricea. Aceasta este o metodă de sortare directă și puteți sorta o matrice cu un singur apel de metodă.
Să explorăm în detaliu aceste două metode.
Utilizarea buclelor
Puteți sorta matricea utilizând sortarea manuală, cum ar fi utilizarea buclelor. Ce puteți face este să utilizați două pentru bucle, una pentru a traversa matricea de la pornire și alta pentru buclă în interiorul celei exterioare pentru a traversa următorul element.
În corp, comparați elementele adiacente și schimbați dacă acestea nu sunt în ordine. Puteți utiliza o variabilă temporară pentru schimbarea elementelor.
Programul de mai jos prezintă această abordare.
public class Main { public static void main(String() args) { //define original array int () intArray = new int () {52,45,32,64,12,87,78,98,23,7}; int temp = 0; //print original array System.out.println('Original array: '); for (int i = 0; i Ieșire:
Sortarea folosind bucla for poate fi eficientă atunci când sunt implicate matrici mai mici. Se poate complica atunci când dimensiunea matricei crește.
Metoda de sortare
Metoda de sortare oferită de clasa ‘java.util.Arrays’ este o modalitate foarte simplă și mai rapidă de a sorta o matrice. Această metodă poate sorta elemente de tipuri primitive, precum și obiecte care implementează interfața comparabilă.
Când sunt sortate elemente de tip primitiv, metoda sortare folosește quicksort. Când obiectele sunt sortate, se folosește mergesort iterativ.
Prototipul general al metodei de sortare este după cum urmează:
Arrays.sort (T() t_arr);
Aici, T () este tipul de date și t_arr este matricea care urmează să fie sortată.
Prototipul de mai sus funcționează pentru matrice care implementează interfața comparabilă.
Pentru tablourile de obiecte personalizate, puteți utiliza o altă variantă a Arrays.sort așa cum este prezentat mai jos .
Arrays.sort(T() t_arr, Comparator.c);
Deci, pentru matricele care nu implementează interfața comparabilă, un comparator ar trebui trecut în funcția de sortare. Rețineți că implicit metoda de sortare sortează matricea în ordine crescătoare.
Să vedem câteva exemple specifice de sortare de matrice.
Sortați matricea numerică în ordine crescătoare
Prima demonstrație este sortarea matricei de numere în ordine crescătoare folosind metode de sortare. După cum sa menționat deja, implicit metoda de sortare sortează matricea în ordine crescătoare. Astfel, pentru a sorta o matrice numerică în ordine crescătoare, trebuie doar să apelați metoda matricei respective.
Dat mai jos este un exemplu pentru a arăta acest lucru.
cum să începeți testarea automatizării de la zero
import java.util.Arrays; public class Main { public static void main(String() args) { //define an array int() intArray = {52, 45, 32, 64, 12, 87, 78, 98, 23, 7}; System.out.printf('Original Array : %s', Arrays.toString(intArray)); Arrays.sort(intArray); System.out.printf('
Sorted Array : %s', Arrays.toString(intArray)); } }
Ieșire:
În programul de mai sus, doar un apel de funcție sortează matricea în ordine crescătoare.
Sortați matricea numerică în ordine descrescătoare
Următoarea sarcină este de a sorta matricea numerică în ordine descrescătoare. Pentru a face acest lucru, metoda de sortare este furnizată cu un al doilea argument „Collections.reverseOrder ()” care sortează o matrice în ordine descrescătoare.
Programul de sortare a matricei în ordine descrescătoare este dat mai jos.
import java.util.Arrays; import java.util.Collections; public class Main { public static void main(String() args) { //Collections.reverseOrder do not work for primitive Types //define an array with Integer Integer() IntArray = {52, 45, 32, 64, 12, 87, 78, 98, 23, 7}; //print original array System.out.printf('Original Array: %s', Arrays.toString(IntArray)); // Sorts IntArray in descending order Arrays.sort(IntArray, Collections.reverseOrder()); //print sorted array System.out.printf('
Sorted Array: %s', Arrays.toString(IntArray)); } }
Ieșire:
Sortați matrice de șiruri în ordine alfabetică
La fel ca matricele numerice, puteți sorta matricea de șiruri folosind funcția de sortare. Când treceți matricea de șiruri, matricea este sortată în ordine alfabetică crescătoare. Pentru a sorta matricea în ordine alfabetică descrescătoare, ar trebui să furnizați metoda interfeței Colecții reverseOrder () ca al doilea argument.
Următorul program demonstrează sortarea unei matrici de șiruri în ordine crescătoare și descendentă.
import java.util.Arrays; import java.util.Collections; public class Main { public static void main(String() args) { String str_Array() = {'Java', 'Python', 'Perl', 'C++', 'C#', 'AS400'}; System.out.printf('Original Array:
%s
', Arrays.toString(str_Array)); // Sorts str_Array in ascending order Arrays.sort(str_Array); System.out.printf('Array sorted in ascending order:
%s
', Arrays.toString(str_Array)); // Sorts str_Array in descending order Arrays.sort(str_Array, Collections.reverseOrder()); System.out.printf('Array sorted in descending order :
%s
', Arrays.toString(str_Array)); } }
Ieșire:
Ieșirea programului arată o matrice sortată de șiruri atât în ordine crescătoare, cât și descendentă.
întrebări frecvente
Q # 1) Ce este Sortarea în Java?
Răspuns: Sortarea se referă la aranjarea datelor în ordine alfabetică sau numerică.
Q # 2) Care tehnică de sortare este utilizată în sortarea matricelor în Java?
Răspuns: Tablourile utilizează Quicksort cu pivot dublu pentru tipurile de date primitive și Mergesort pentru sortarea obiectelor.
Î # 3) Ce este un comparator în Java?
Răspuns: Interfața de comparare face parte din pachetul java.util și este utilizată pentru a aranja obiectele definite de utilizator. Interfața de comparare este utilizată mai ales în timpul sortării obiectelor folosind metoda sortare.
Q # 4) La ce folosește Sortarea în Java?
Răspuns: Sortarea este o tehnică de aranjare a datelor într-o anumită ordine. Sortarea datelor este utilă, deoarece putem căuta date mai eficient și mai rapid. De asemenea, putem efectua cu ușurință alte operațiuni precum accesarea, stocarea etc. la datele comandate.
Q # 5) Este posibilă sortarea listelor în Java?
Răspuns: Da. Listele fac parte din interfața Collections din Java și putem folosi metoda sort () a interfeței Collections pentru a sorta lista.
Concluzie
Aceasta completează discuția noastră cu privire la sortarea matricelor în Java. Am discutat diferitele metode de sortare a matricelor în Java, inclusiv cele furnizate de pachetele Java, precum și metoda tradițională de utilizare a buclelor „pentru” pentru a sorta elementele matrice unul câte unul.
Am văzut cum să sortăm o matrice în ordine crescătoare și descendentă. Apoi am învățat cum să sortăm o matrice de șiruri în ordine alfabetică.
Vom continua să explorăm mai multe subiecte despre matrici în Java în tutorialele noastre ulterioare.
=> Consultați Tutorialele Java complete pentru toți aici
Lectură recomandată
- Tutorial Java Lungime matrice cu exemple de cod
- Inversați o matrice în Java - 3 metode cu exemple
- Tutorial JAVA pentru începători: peste 100 de cursuri video Java practice
- Tutorial de reflecție Java cu exemple
- Java Generic Array - Cum se pot simula matrici generice în Java?
- Cuvânt cheie Java „acest”: Tutorial cu exemple de cod
- Cum să treceți / returnați o matrice în Java
- Java Array - Cum se imprimă elemente ale unui array în Java?