how sort an array java tutorial with examples
Denne vejledning forklarer forskellige metoder til at sortere en matrix i Java i stigende, faldende og alfabetisk rækkefølge ved hjælp af enkle eksempler:
Sortering arrangerer data i en bestemt rækkefølge. Computerdata består af poster, der består af et eller flere felter. For at bruge data effektivt og udføre forskellige operationer som søgning, adgang osv. Anbefales det, at disse data arrangeres i en bestemt rækkefølge.
For eksempel, hvis der er adskillige optegnelser over elevdata, kan vi arrangere disse data afhængigt af studerendes id eller studerendes navn. Dette kaldes sortering. Derfor er sortering afgørende for at bruge dataene mere effektivt og let.
=> Besøg Java Training Tutorial Series her
I Java indeholder arrays data, og vi skal sortere disse data for at arrangere dem efter nogle angivne kriterier. I denne vejledning vil vi diskutere sorteringen af Arrays i detaljer sammen med enkle eksempler.
Hvad du lærer:
Sådan sorteres en matrix i Java
Java giver følgende metoder til at sortere arrays.
- Brug til løkker: Du kan bruge til sløjfer til at krydse arrayet og sammenligne tilstødende elementer, mens du krydser og sætter dem i orden.
- Brug af sorteringsmetoden: Arrays-klassen af 'java.util'-pakken indeholder den sorteringsmetode, der tager en matrix som et argument og sorterer matrixen. Dette er en direkte sorteringsmetode, og du kan sortere en matrix med kun et metodekald.
Lad os udforske begge disse metoder i detaljer.
Brug af sløjfer
Du kan sortere arrayet ved hjælp af manuel sortering som at bruge til sløjfer. Hvad du kan gøre er at bruge to til sløjfer, en til at krydse arrayet fra starten og en anden til loop inde i den ydre til at krydse det næste element.
I kroppen sammenligner du de tilstødende elementer og bytter, hvis de ikke er i orden. Du kan bruge en midlertidig variabel til bytte af elementer.
Programmet nedenfor viser denne tilgang.
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 Produktion:
Sortering ved hjælp af for loop kan være effektiv, når mindre arrays er involveret. Det kan blive kompliceret, når matrixstørrelsen øges.
Sorteringsmetode
Sorteringsmetoden leveret af klassen ‘java.util.Arrays’ er en meget enkel og hurtigere måde at sortere en matrix på. Denne metode kan sortere elementer af primitive typer såvel som objekter, der implementerer den sammenlignelige grænseflade.
Når primitive typeelementer sorteres, bruger sorteringsmetoden quicksort. Når objekter sorteres, bruges iterativ sammenlægningssort.
Den generelle prototype af sorteringsmetoden er som følger:
Arrays.sort (T[] t_arr);
Her er T [] datatypen, og t_arr er det array, der skal sorteres.
Ovenstående prototype fungerer til arrays, der implementerer sammenlignelig grænseflade.
For arrays af brugerdefinerede objekter kan du bruge en anden variant af Arrays.sort som angivet nedenfor .
Arrays.sort(T[] t_arr, Comparator.c);
Så for de arrays, der ikke implementerer Comparable interface, skal en komparator sendes i sorteringsfunktionen. Bemærk, at sorteringsmetoden som standard sorterer arrayet i stigende rækkefølge.
Lad os se nogle specifikke eksempler på matrixsortering.
Sorter numerisk matrix i stigende rækkefølge
Den første demonstration er sortering af nummerarray i stigende rækkefølge ved hjælp af sorteringsmetoder. Som allerede nævnt sorterer sorteringsmetoden som standard arrayet i stigende rækkefølge. For at sortere et numerisk array i stigende rækkefølge skal du bare kalde metoden på det pågældende array.
Nedenfor er et eksempel for at vise dette.
bedste computerrenser til Windows 10
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)); } }
Produktion:
I ovenstående program sorterer kun et funktionsopkald arrayet i stigende rækkefølge.
Sorter numerisk matrix i faldende rækkefølge
Den næste opgave er at sortere det numeriske array i faldende rækkefølge. For at gøre dette er sorteringsmetoden forsynet med et andet argument 'Collections.reverseOrder ()', der sorterer en matrix i faldende rækkefølge.
Program til at sortere array i faldende rækkefølge er angivet nedenfor.
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)); } }
Produktion:
Sorter strengarray i alfabetisk rækkefølge
Ligesom numeriske arrays kan du også sortere strengarray ved hjælp af sorteringsfunktionen. Når du passerer strengarrayet, sorteres arrayet i stigende alfabetisk rækkefølge. For at sortere matrixen i faldende alfabetisk rækkefølge, skal du angive metoden CollectionsOverser interface reverseOrder () som det andet argument.
Det følgende program viser sorteringen af en streng array i stigende såvel som faldende rækkefølge.
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)); } }
Produktion:
Programmets output viser en sorteret række strenge i både stigende og faldende rækkefølge.
Ofte stillede spørgsmål
Q # 1) Hvad er sortering i Java?
Svar: Sortering henviser til at arrangere data i rækkefølge enten alfabetisk eller numerisk.
Q # 2) Hvilken sorteringsteknik bruges i Arrays-sortering i Java?
Svar: Arrays bruger Quicksort med dobbelt drejning til primitive datatyper og Mergesort til sortering af objekter.
Q # 3) Hvad er en komparator i Java?
Svar: Comparator interface er en del af pakken java.util og bruges til at arrangere de brugerdefinerede objekter. Comparator interface bruges mest under sortering af objekter ved hjælp af sorteringsmetoden.
Spørgsmål nr. 4) Hvad er brugen af sortering i Java?
Svar: Sortering er en teknik til at arrangere data i en bestemt rækkefølge. Sortering af data er nyttigt, da vi kan søge efter data mere effektivt og hurtigt. Vi kan også nemt udføre andre operationer som adgang, lagring osv. På de bestilte data.
Q # 5) Er det muligt at sortere lister i Java?
Svar: Ja. Lister er en del af grænsefladen Collections i Java, og vi kan bruge metoden sort () i grænsefladen Collections til at sortere listen.
Konklusion
Dette afslutter vores diskussion om sortering af arrays i Java. Vi har diskuteret de forskellige metoder til at sortere arrays i Java inklusive dem, der leveres af Java-pakker, samt den traditionelle metode til at bruge 'for' sløjfer til at sortere array-elementer en efter en.
Vi så, hvordan man sorterer en matrix i stigende og faldende rækkefølge. Derefter lærte vi, hvordan man sorterer en streng array i alfabetisk rækkefølge.
Vi vil fortsætte med at udforske flere emner om arrays i Java i vores efterfølgende tutorials.
=> Se de komplette Java-vejledninger for alle her
Anbefalet læsning
- Java Array Length Tutorial med kodeeksempler
- Vend en matrix i Java - 3 metoder med eksempler
- JAVA-vejledning til begyndere: 100+ praktiske Java-videovejledninger
- Java Reflection Tutorial med eksempler
- Java Generic Array - Sådan simuleres generiske arrays i Java?
- Java 'dette' Nøgleord: Vejledning med kodeeksempler
- Sådan videregives / returneres en matrix i Java
- Java Array - Hvordan udskrives elementer af en matrix i Java?