Einführung in das Sortieren in Java

  • Beim Sortieren in Java wird im Grunde genommen eine Gruppe von Elementen angeordnet, die in einer bestimmten Reihenfolge gespeichert sind. Diese Reihenfolge kann sowohl aufsteigend als auch absteigend sein. In der Echtzeitprogrammierung gibt es viele Szenarien, in denen die Elemente sortiert werden müssen, während gleichzeitig gesucht wird Ein bestimmtes Element einfach, da die Elemente durch einen Index von Arrays direkt abgerufen werden können, wenn sie sortiert sind. Elemente, die sortiert werden müssen, können entweder in einem Array oder in einer Sammlung gespeichert werden. Es gibt viele Arten von Auflistungen in Java-ähnlichen Mengen, Baum, Karte, Heap, Liste usw. Es gibt jedoch verschiedene Arten von Sortieralgorithmen, die zum Sortieren der Elemente in einer Array-ähnlichen Blasensortierung, Heapsortierung, Einfügesortierung verwendet werden, Auswahl sortieren, Sortieren zusammenführen usw.
  • Programmierer verwenden verschiedene Algorithmen, um die Elemente nach ihren spezifischen Anforderungen und der Komplexität der Algorithmen zu sortieren. Diese Sortieralgorithmen werden mithilfe verschiedener Schleifen und Variablen implementiert, um sie zu durchlaufen. Abgesehen von der Verwendung der Sortieralgorithmen zum Sortieren der Elemente in einem Array bietet Java die eingebaute Sortierfunktion, die bei dieser Aufgabe hilfreich sein kann, und der Programmierer muss nicht in großen Schleifen stecken bleiben und über Komplexität nachdenken. Ja, Sie haben richtig gehört, in Java wird sort () verwendet, um die Elemente zu sortieren, die entweder in Arrays oder Sammlungen gespeichert sind, und zwar mit einer sehr viel geringeren Komplexität von o (n (logn)). Die Implementierung der Methode in beiden Fällen ist jedoch etwas unterschiedlich.

Syntax für Arrays:

Arrays.sort(array_name);

Für Sammlungen

Collections.sort(array_name_list);

  • Hier ist array_name und array_name_list der Name des Arrays oder der Sammlung, die sortiert werden muss.
  • Arrays sind die Namen von Java-Klassen.
  • Die Sammlung ist ein Framework in Java.
  • sort () ist die in Java eingebaute Sortierfunktion.

Wie wird in Java sortiert?

Im Folgenden sind die Punkte wie folgt:

  • Durch die Verwendung von Sortieralgorithmen kann das Sortieren auch mit Algorithmen durchgeführt werden, die von ineffizient bis effizient variieren, und jeder Algorithmus hat seine eigene zeitliche und räumliche Komplexität.
  • Manchmal sind diese Algorithmen sehr komplex, sodass sie in realen Szenarien, in denen große Datenmengen verarbeitet werden müssen, nicht verwendet werden können.
  • Wie oben erwähnt, werden in Java Inbuilt Function mit sort () alle Elemente eines Arrays und einer Auflistung sortiert. Laut dem offiziellen Java-DOC verwendet Array.sort die QuickSort, die den doppelten Drehpunkt darstellt und vergleichsweise viel schneller ist als die QuickSort mit einem Drehpunkt.
  • Einer der größten Vorteile davon ist, dass es eine Komplexität von O (n (logn)) liefert. Es nutzt die sehr stabile und iterative Implementierung des Array-Objekts von Merge Sort. Java bietet eine Methode, um das Array auch in umgekehrter Reihenfolge zu sortieren, je nach Anforderung des Programmierers, entweder in aufsteigender oder absteigender Reihenfolge zu sortieren. Mit der Methode Collections.reverseOrder () werden die Elemente in umgekehrter oder absteigender Reihenfolge sortiert.
  • Java 8 bietet auch die Möglichkeit, die Arrays mithilfe der parallelen Sortierung parallel zu sortieren. Dabei wird das Multithreading-Konzept von Java verwendet und das gesamte Array in Teile unterteilt und nach dem Sortieren zusammengeführt.

Sortierungsarten in Java

Nachfolgend sind einige Möglichkeiten aufgeführt, wie die Sortierung in der Java-Sortierung durchgeführt werden kann:

1. sort (array_name)

Dies wird verwendet, um das gesamte Array in aufsteigender Reihenfolge zu sortieren. Standardmäßig sortiert diese Methode die Array-Elemente in aufsteigender Reihenfolge.

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));
)
)

Ausgabe:

2. Collection.reverseOrder ()

Diese Methode in Java wird verwendet, um das Array in umgekehrter oder absteigender Reihenfolge zu sortieren. Es gibt Szenarien, in denen wir die Elemente in absteigender Reihenfolge sortieren müssen, und Java erledigt dies mit der eingebauten 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));
)
)

Ausgabe:

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

Wenn ein Teil eines Arrays anstelle des gesamten Arrays sortiert werden muss, bietet Java die Möglichkeit, diesen Array-Typ durch Angabe von 3 Parametern zu sortieren, dh Array-Name, erster Index, von dem aus die Sortierung gestartet werden muss, und letzter Index Index bis wann die Sortierung durchgeführt werden muss.

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));
)

Ausgabe:

4. Arrays.parllelSort (array_name)

Ab Java 8 wurde die neue API der parallelen Sortierung veröffentlicht. Grundsätzlich wird bei der parallelen Sortierung das Array in zwei Unterarrays unterteilt, und die grundlegende Funktion Array.sort () wird von einem separaten Thread ausgeführt. Die sortierten Arrays werden dann am Ende zusammengeführt, um das vollständig sortierte Array zu bilden. Dies geschieht, um die Verwendung von Multithreading zu nutzen.

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));
)
)

Ausgabe:

Wie ein normales Array.sort () bietet auch Arrays.parallelSort () die Möglichkeit, einen bestimmten Array-Bereich oder ein Array in umgekehrter Reihenfolge zu sortieren.

Syntax:

// 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 ()

Diese Methode wird verwendet, um die Sammlungen wie Liste, Karte, Set usw. zu sortieren. Sie verwendet die Zusammenführungssortierung und bietet dieselbe Komplexität wie Array.sort (), dh O (n (logn)).

1. Sortieren einer Liste in aufsteigender Reihenfolge

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);
)
)

Ausgabe:

2. Sortieren einer Array-Liste in absteigender Reihenfolge

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);
)
)

Ausgabe:

3. Sortieren des Sets

Es gibt drei Grundregeln für das Sortieren eines Sammlungssatzes mit der obigen Methode sort (array_name):

    1. Konvertieren Sie das Set in die Liste.
    2. Sortieren Sie die Liste mit der Methode sort (array_name).
    3. Konvertieren Sie die resultierende sortierte Liste zurück in 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);
)
)

Ausgabe:

4. Sortieren Sie eine Karte

Collection Map in Java ist eine Kombination aus Schlüssel und Wert. Die Sortierung kann also in beide Richtungen entweder nach Schlüssel oder nach Wert erfolgen.

  • Sortieren einer Karte nach Schlüssel: Das folgende Beispiel zeigt das Sortieren einer Karte nach Schlüssel.

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);
)
)

Ausgabe:

Eine der einfachsten Möglichkeiten, die Elemente der Map nach Schlüsseln zu sortieren, besteht darin, die unsortierten Map-Elemente der TreeMap hinzuzufügen. TreeMap sortiert die Elemente automatisch in aufsteigender Reihenfolge der Hash-Schlüssel. Obwohl collection.sort () auch verwendet werden kann, ist es etwas komplex und muss gut codiert werden.

  • Sortieren einer Karte nach Wert: Nachfolgend finden Sie ein Beispiel dafür, wie die Sortierung in einer Karte anhand des Werts durchgeführt werden kann.

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()));

Ausgabe:

Im obigen Beispiel für die Sortierung von Map nach Wert legen wir zuerst die Einträge mit der Methode map.entrySet () fest und streamen diese Einträge dann mit der Methode stream (). Rufen Sie das sortierte Array mit der Methodeorted () auf, indem Sie sie mit dem Wert in vergleichen Paar. for each orders () wird verwendet, um den Stream zu durchlaufen und das Ergebnis zu erzeugen.

5. Vergleichbar

Comparable ist ein Interface und macht die Klassen mit ihren Instanzen vergleichbar.

Zum Vergleichen der beiden Instanzen derselben Klasse muss die Comparable-Schnittstelle implementiert und die Methode compareTo () überschrieben werden. Die Klassen, die diese Schnittstelle implementieren, sowie die Liste der Objekte werden mithilfe der Methoden Collections.sort () und Arrays.sort () automatisch sortiert.

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);

Ausgabe:

Fazit

Oben wird die Sortierung in Java-Methoden erläutert, die in Java für mehrere Szenarien von Arrays und Sammlungen verwendet werden. Ein Programmierer muss berücksichtigen, wie die sort () -Methode für verschiedene Auflistungstypen verwendet werden soll. Mit Java 8 kann die Sortierung auch über Lambdas erfolgen, um die Comparator-Schnittstelle zu implementieren, was die Sortierung erleichtert. Obwohl es ein bisschen schwierig ist, sie alle zu lernen, kann es einfach sein, mit ihnen zu arbeiten, wenn alle grundlegenden Konzepte von Java, insbesondere Daten-Streaming, Arrays und Sammlungen, klar sind. Obwohl Sortieralgorithmen immer aktuell sind und wie andere Programmiersprachen problemlos in Java implementiert werden können, sind sie unterschiedlich komplex. Die integrierte Funktion sort () von Java erleichtert die Arbeit, wenn die grundlegenden Konzepte auswendig gelernt werden.

Empfohlene Artikel

Dies ist eine Anleitung zum Sortieren in Java. Hier wird erläutert, wie das Sortieren in Java und die Sortierungsarten in Java mit unterschiedlichen Codes und Ausgaben durchgeführt werden. Sie können auch unsere anderen verwandten Artikel durchgehen, um mehr zu erfahren.

  1. JComboBox in Java
  2. Sortierung in C
  3. Heap-Sortierung in C
  4. Blasensortierung in JavaScript
  5. Was ist Sortieren in C ++?
  6. Einführung in das Sortieren in PHP
  7. Heap-Sortierung in Python
  8. Einfügesortierung in JavaScript
  9. Hashmap in Java
  10. Vergleichbar in Java Beispiel | Erfassungsschnittstelle in Java