Inleiding tot sorteren in Java

  • Sorteren in Java is in feite het rangschikken van een groep elementen die ergens in een bepaalde volgorde zijn opgeslagen, deze volgorde kan zowel oplopend als aflopend zijn. Er zijn veel scenario's in realtime programmering waarbij het nodig wordt om de elementen te sorteren omdat het ook zoeken naar een bepaald element eenvoudig omdat de elementen gemakkelijk kunnen worden opgehaald door de index van arrays direct als ze zijn gesorteerd. Elementen die moeten worden gesorteerd, kunnen worden opgeslagen in een array of een verzameling. De verzameling is van vele soorten in Java-achtige sets, boom, kaart, heap, lijst, enz. Hoewel er verschillende soorten sorteeralgoritmen zijn die worden gebruikt om de elementen in een array-achtige bubbelsortering, hopsortering, invoegsortering te sorteren, Selectie sorteren, Sorteren samenvoegen, etc.
  • Programmeurs gebruiken verschillende algoritmen om de elementen te sorteren op basis van hun specifieke vereisten en complexiteit van algoritmen. Deze sorteeralgoritmen worden geïmplementeerd door het gebruik van verschillende lussen en variabelen om erdoorheen te lopen. Afgezien van het gebruiken van de sorteeralgoritmen om de elementen in een array te sorteren, biedt Java de ingebouwde sorteerfunctie die hiermee kan helpen en de programmeur hoeft niet in grote lussen te zitten en na te denken over complexiteit. Ja, je hoort het goed, in Java sort () wordt de functie gebruikt om de elementen te sorteren die zijn opgeslagen in arrays of verzamelingen en dat met een zeer minder complexiteit van o (n (logn)). Hoewel de implementatie van de methode in beide een beetje anders is.

Syntaxis voor arrays:

Arrays.sort(array_name);

Voor collecties

Collections.sort(array_name_list);

  • Hier is array_name en array_name_list de naam van de array of de verzameling die moet worden gesorteerd.
  • Arrays zijn de naam van klassen van Java.
  • De collectie is een framework op Java.
  • sort () is de ingebouwde sorteerfunctie die in Java wordt gebruikt.

Hoe sorteren wordt uitgevoerd op Java?

Hieronder volgen de punten als volgt:

  • Door het gebruik van sorteeralgoritmen kan sorteren ook worden uitgevoerd met algoritmen die variëren van inefficiënt tot efficiënt en elk algoritme heeft zijn eigen tijd- en ruimtecomplexiteit.
  • Soms hebben deze algoritmen een zeer hoge complexiteit en kunnen ze niet worden gebruikt in echte scenario's waarbij grote hoeveelheden gegevens moeten worden verwerkt.
  • Zoals hierboven vermeld, wordt in de ingebouwde Java-functie sort () gebruikt om alle elementen van een array en verzameling te sorteren. Volgens de officiële Java DOC gebruikt Array.sort de quicksort, de dubbele spil en relatief veel sneller dan de Quick Sort met enkele spil.
  • Een van de grootste voordelen hiervan is dat het een complexiteit van O (n (logn)) biedt. Het maakt gebruik van de zeer stabiele en iteratieve implementatie van het array-object van Merge Sort. Java biedt een methode om de array ook in omgekeerde volgorde te sorteren volgens de vereiste van het programmeerapparaat om in oplopende of aflopende volgorde te sorteren. De methode Collections.reverseOrder () wordt gebruikt om de elementen in omgekeerde of aflopende volgorde te sorteren.
  • Java 8 biedt ook de mogelijkheid om de arrays parallel te sorteren met behulp van Parallel sorting waarbij het multithreading-concept van Java wordt gebruikt en de hele array in delen wordt verdeeld en na het sorteren wordt samengevoegd.

Soorten sortering in Java

Hieronder staan ​​enkele manieren waarop sorteren kan worden uitgevoerd in Sorteren in Java:

1. sort (matrixnaam)

Dit wordt gebruikt om de complete array in oplopende volgorde te sorteren. Standaard sorteert deze methode de array-elementen in oplopende volgorde.

Code:

import java.util.Arrays;
public class SimpleSort
(
public static void main(String() args)
(
//Unsorted array of numbers
Integer() arr = new Integer() (100, 20, 10, 30, 80, 70, 90, 40, 50, 60);
//Sort function to sort the above array
Arrays.sort(arr);
//Printing the sorted array on console
System.out.println(Arrays.toString(arr));
)
)

Output:

2. Collection.reverseOrder ()

Deze methode in Java wordt gebruikt om de array in omgekeerde volgorde of aflopende volgorde te sorteren. Er zijn scenario's waarin we de elementen in aflopende volgorde moeten sorteren en Java doet dat via de ingebouwde methode.

Code:

import java.util.Arrays;
public class ReverseSort
(
public static void main(String() args)
(
//Unsorted array of numbers
Integer() arr = new Integer() ( 100, 20, 10, 30, 80, 70, 90, 40, 50, 60);
//Sort function to sort the above array
Arrays.sort(arr, Collections.reverseOrder());
//Printing the sorted array on console
System.out.println(Arrays.toString(arr));
)
)

Output:

3. sort (int () array_name, int findex, int lindex)

Als het nodig is om een ​​deel van een array te sorteren in plaats van de hele array, biedt Java de mogelijkheid om dit type array te sorteren door 3 parameters op te geven, dwz de arraynaam, de eerste index van waar het sorteren moet worden gestart en de laatste index tot wanneer het sorteren moet worden gedaan.

Code:

import java.util.Arrays;
public class ReverseSort
(
public static void main(String() args)
(
//Unsorted array of numbers
Integer() arr = new Integer() ( 100, 20, 10, 30, 80, 70, 90, 40, 50, 60);
//Sort function to sort the above array
Arrays.sort(arr, 1, 5);
//Printing the sorted array on console
System.out.println(Arrays.toString(arr));
)

Output:

4. Arrays.parllelSort (array_name)

Van Java 8 is de nieuwe API van de parallelle soort vrijgegeven. In principe in Parallelle sortering, is de array verdeeld in 2 subarrays en wordt de basisfunctie Array.sort () uitgevoerd door een afzonderlijke thread. De gesorteerde arrays worden uiteindelijk samengevoegd om de volledig gesorteerde array te vormen. Dit wordt gedaan om het gebruik van multi-threading te benutten.

Code:

import java.util.Arrays;
public class ParallelSort
(
public static void main(String() args)
(
//Unsorted array of numbers
Integer() arr = new Integer() ( 100, 20, 10, 30, 80, 70, 90, 40, 50, 60);
//parallel Sort function to sort the above array
Arrays.parallelSort(arr);
//Printing the sorted array on console
System.out.println(Arrays.toString(arr));
)
)

Output:

Net als een normale Array.sort () biedt Arrays.parallelSort () ook de mogelijkheid om een ​​bepaald arraybereik te sorteren of een array in omgekeerde volgorde te sorteren.

Syntaxis:

// to Sort a range of array by parallelsort
Arrays.parallelSort(array_name, findex, lindex);
// to sort an array in reverse order using parallelSort
Arrays.parallelSort(array_name, Collections.reverseOder());

5. Collection.sort ()

Deze methode wordt gebruikt om de collecties zoals lijst, kaart, Set, enz. Te sorteren. Het gebruikt de samenvoegsortering en geeft dezelfde complexiteit als Array.sort (), dwz O (n (logn)).

1. Een lijst sorteren in oplopende volgorde

Code:

import java.util.Arrays;
import java.util.Collections;
public class ListSort
(
public static void main(String() args)
(
//Unsorted list
Integer() arr = new Integer() ( 100, 20, 10, 30, 80, 70, 90, 40, 50, 60 );
List arrList = Arrays.asList(arr);
//Sorting of list using the method
Collections.sort(arrList);
//Printing the list sorted above
System.out.println(arrList);
)
)

Output:

2. Een matrixlijst sorteren in aflopende volgorde

Code:

import java.util.Arrays;
import java.util.Collections;
public class ListSortRev
(
public static void main(String() args)
(
//Unsorted array list of Integers
Integer() arr = new Integer() (100, 20, 10, 30, 80, 70, 90, 40, 50, 60 );
List arrList = Arrays.asList(arr);
//Sorting of list using the method
Collections.sort(arrList);
//Printing the list sorted above
System.out.println(arrList);
)
)

Output:

3. Sorteren van set

Er zijn 3 basisregels tijdens het sorteren van een verzameling 'Set' met behulp van de bovenstaande methode sort (array_name):

    1. Zet de set om in de lijst.
    2. Sorteer de lijst met de methode sort (array_name).
    3. Converteer de resulterende gesorteerde lijst terug naar Set.

Code:

List numList = new ArrayList(num) ;
//Sorting the list retrieved above
Collections.sort(numList);
// Converting sorted List into Set
num = new LinkedHashSet(numList);
//Printing the Resulting Set on console
System.out.println(num);
)
)

Output:

4. Sorteer een kaart

Collectiekaart in Java is een combinatie van sleutel en waarde. Sorteren kan dus op beide manieren gebeuren, hetzij via sleutel of op waarde.

  • Een kaart op sleutel sorteren: laten we het onderstaande voorbeeld bekijken van een kaart op sleutel sorteren.

Code:

import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
public class SortHashKey
(
public static void main(String() args)
(
HashMap map = new HashMap();
map.put(80, "Akshay");
map.put(20, "Akash");
map.put(10, "Bob");
map.put(30, “Nitika");
map.put(90, "Yashi");
map.put(100, "Dragisa");
TreeMap treeMap = new TreeMap(map);
System.out.println(treeMap);
)
)

Output:

Een van de gemakkelijkste manieren om de elementen van de kaart op toetsen te sorteren, is door de ongesorteerde kaartelementen toe te voegen in de TreeMap. TreeMap sorteert de elementen automatisch in de oplopende volgorde van Hash Keys. Hoewel collection.sort () ook kan worden gebruikt om hetzelfde te doen, is het enigszins complex en moet het goed worden gecodeerd.

  • Sorteer een kaart op waarde: Hieronder staat een voorbeeld van hoe het sorteren in een kaart kan worden gedaan met behulp van waarde.

Code:

import java.util.HashMap;
import java.util.Map;
import java.util.Comparator;
import java.util.LinkedHashMap;
import java.util.Map;
public class SortHashValue
(
public static void main(String() args)
(
HashMap map = new HashMap(); map.put(80, "Akshay");
map.put(20, "Akash");
map.put(10, "Bob");
map.put(30, “Nitika");
map.put(90, "Yashi");
map.put(100, "Dragisa");
LinkedHashMap sorted = new LinkedHashMap(); map.entrySet()
.stream()
.sorted(Map.Entry.comparingByValue())
.forEachOrdered(x -> sorted.put(x.getKey(), x.getValue()));

Output:

In het bovenstaande voorbeeld van het sorteren van Map op waarde, stellen we eerst de items in met behulp van de map.entrySet () en vervolgens streamen van die items met de methode stream (), roepen we de sorted array op met de methode Sort () door te vergelijken op waarde in de paar. voor elke besteld () wordt gebruikt om de stroom te doorlopen om het resultaat te produceren.

5. Vergelijkbaar

Vergelijkbaar is een interface en deze maakt de klassen vergelijkbaar met zijn instanties.

Om de twee instanties van dezelfde klasse te vergelijken, moet een vergelijkbare interface worden geïmplementeerd en moet de methode CompareTo () worden genegeerd. De klassen die deze interface implementeren, de lijst met objecten, worden automatisch gesorteerd met behulp van de methode Collections.sort () en Arrays.sort ().

Code:

ArrayList list = new ArrayList();
// Adding the instance objects of class Employee in list
list.add(new Employee(10, "Akshay")));
list.add(new Employee(40, "Bob")));
list.add(new Employee(20, "Priyansh")));
list.add(new Employee(50, "Chandni")));
list.add(new Employee(70, "Yashi")));
Collections.sort(list);
// Printing the sorted list on Console
System.out.println(list);

Output:

Conclusie

Hierboven worden de methoden Sorteren in Java uitgelegd die in Java worden gebruikt voor meerdere scenario's van arrays en collecties. Een programmeur moet in gedachten houden hoe de methode sort () moet worden gebruikt voor verschillende Collectietypen. Met Java 8 kan ook worden gesorteerd via Lambdas om de Comparator-interface te implementeren, wat het sorteren eenvoudiger maakt. Hoewel het een beetje moeilijk is om ze allemaal te leren, kan het gemakkelijk zijn om ermee te werken als alle basisconcepten van Java, met name datastreaming, arrays en collecties duidelijk zijn. Hoewel sorteeralgoritmen groenblijvend zijn en gemakkelijk kunnen worden geïmplementeerd in Java-achtige andere programmeertalen, hebben ze een variërende complexiteit en de ingebouwde functiesortering () van Java maakt het eenvoudiger als de basisconcepten uit het hoofd worden geleerd.

Aanbevolen artikelen

Dit is een gids voor sorteren op Java. Hier bespreken we hoe sorteren in Java en typen sorteren in Java met verschillende codes en uitgangen. U kunt ook onze andere gerelateerde artikelen doornemen voor meer informatie-

  1. JComboBox in Java
  2. Sorteren in C
  3. Heap Sorteer in C
  4. Bubble Sort in JavaScript
  5. Wat is sorteren in C ++?
  6. Inleiding tot sorteren in PHP
  7. Heap Sort in Python
  8. Invoegsortering in JavaScript
  9. Hashmap in Java
  10. Vergelijkbaar in Java Voorbeeld | Collectie-interface in Java