Heim >Java >javaLernprogramm >Sortieren Sie Java-Vektoren mithilfe des Komparators in absteigender Reihenfolge
Vectors implementiert die List-Schnittstelle und wird zum Erstellen dynamischer Arrays verwendet. Arrays, deren Größe nicht festgelegt ist und gemäß unseren Anforderungen wachsen kann, werden als dynamische Arrays bezeichnet. Comparator ist eine Schnittstelle, die im Paket „java.util“ verfügbar ist.
Sortieren bedeutet, die Elemente einer bestimmten Liste oder eines Arrays in aufsteigender oder absteigender Reihenfolge neu anzuordnen. In diesem Artikel erstellen wir einen Vektor und versuchen dann, seine Elemente mithilfe eines Komparators in absteigender Reihenfolge zu sortieren.
Wie der Name schon sagt, wird es verwendet, um etwas zu vergleichen. In Java ist Comparator eine Schnittstelle zum Sortieren benutzerdefinierter Objekte. Wir können unsere eigene Logik schreiben, um die angegebenen Objekte in der integrierten Methode „compare()“ zu sortieren. Diese Methode akzeptiert zwei Objekte als Parameter und gibt einen ganzzahligen Wert zurück. Anhand dieses ganzzahligen Werts bestimmt der Komparator, welches Objekt größer ist.
Comparator< TypeOfComparator > nameOfComparator = new Comparator< TypeOfComparator >() { compare( type object1, type object1 ) { // logic for comparison } };
In einer Methode wie „Collection.sort()“ ist nameOfComparator der Parameter, der für den Sortiervorgang verwendet wird.
Die Klasse „Collections“ der Collection-Schnittstelle stellt eine statische Methode namens „Collections.sort()“ bereit, die Elemente bestimmter Sammlungen wie ArrayList oder LinkedList sortieren kann. Sie ist im Paket „java.util“ verfügbar.
Collections.sort( nameOfcollection, ComparatorObject );
Der Komparator wird in umgekehrter Reihenfolge zurückgegeben
Im folgenden Beispiel definieren wir einen Vektor namens „vectlist“ und speichern darin einige Objekte mithilfe der Methode „add()“. Anschließend verwenden wir das Comparator-Objekt und die Methode „Collection.sort()“, um die zu sortieren Vektor in absteigender Reihenfolge.
import java.util.*; public class VectClass { public static void main(String args[]) { // Creation of vector Vector<Integer> vectList = new Vector<>(); // Adding elements in the vector vectList.add(97); vectList.add(93); vectList.add(95); vectList.add(99); vectList.add(82); vectList.add(88); System.out.println("Elements of the unsorted list: "); // loop to iterate through elements for(int i = 0; i < vectList.size(); i++ ) { // to print the elements of the vector System.out.print(vectList.get(i) + " "); } System.out.println(); // Using comparator interface for sorting Comparator comp = Collections.reverseOrder(); Collections.sort(vectList, comp); System.out.println("Elements of the newly sorted list: "); // loop to iterate through elements for(int i = 0; i < vectList.size(); i++ ) { // to print the elements of the new vector System.out.print(vectList.get(i) + " "); } } }
Note: VectClass.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. Elements of the unsorted list: 97 93 95 99 82 88 Elements of the newly sorted list: 99 97 95 93 88 82
In diesem Beispiel erstellen wir zunächst einen Komparator und definieren darin unsere Logik in der Methode „compare()“, um die Vektorobjekte in absteigender Reihenfolge zu sortieren. Die Logik besagt hier, dass zwei Objekte gleichzeitig genommen und verglichen werden Sie verwenden den if-else-Block. Wenn das erste Objekt größer als das zweite ist, geben Sie -1 zurück, andernfalls 1. Dann übergeben wir das Objekt des Komparators für den Sortiervorgang an „Collection.sort()“.
import java.util.*; public class VectClass { public static void main(String args[]) { // Using comparator interface for sorting Comparator<Integer> comp = new Comparator<Integer>() { // logic to sort in descending order public int compare(Integer i, Integer j) { if(i < j) { return 1; } else { return -1; } } }; // Creation of vector Vector<Integer> vectList = new Vector<>(); // Adding elements in the vector vectList.add(97); vectList.add(93); vectList.add(95); vectList.add(99); vectList.add(82); vectList.add(88); System.out.println("Elements of the unsorted list: "); // loop to iterate through elements for(int i = 0; i < vectList.size(); i++ ) { // to print the elements of the vector System.out.print(vectList.get(i) + " "); } System.out.println(); Collections.sort(vectList, comp); // sort using comparator System.out.println("Elements of the newly sorted list: "); // loop to iterate through elements for(int i = 0; i < vectList.size(); i++ ) { // to print the elements of the new vector System.out.print(vectList.get(i) + " "); } } }Ausgabe
Elements of the unsorted list: 97 93 95 99 82 88 Elements of the newly sorted list: 99 97 95 93 88 82
Das obige ist der detaillierte Inhalt vonSortieren Sie Java-Vektoren mithilfe des Komparators in absteigender Reihenfolge. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!