Heim > Java > javaLernprogramm > Sortieren Sie Java-Vektoren mithilfe des Komparators in absteigender Reihenfolge

Sortieren Sie Java-Vektoren mithilfe des Komparators in absteigender Reihenfolge

WBOY
Freigeben: 2023-08-20 19:17:03
nach vorne
795 Leute haben es durchsucht

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.

Programm zum Sortieren von Java-Vektoren in absteigender Reihenfolge

Komparator

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.

Syntax

Comparator< TypeOfComparator > nameOfComparator = new Comparator< TypeOfComparator >() {
   compare( type object1, type object1 ) {
      // logic for comparison
   }
};
Nach dem Login kopieren

In einer Methode wie „Collection.sort()“ ist nameOfComparator der Parameter, der für den Sortiervorgang verwendet wird.

Collections.sort()-Methode

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.

Syntax

Collections.sort( nameOfcollection, ComparatorObject );
Nach dem Login kopieren

Collections.reverseOrder()

Der Komparator wird in umgekehrter Reihenfolge zurückgegeben

Beispiel 1

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) + " "); 
      }
   }
}
Nach dem Login kopieren

Ausgabe

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 
Nach dem Login kopieren

Beispiel 2

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) + " "); 
      }
   }
}
Nach dem Login kopieren

Ausgabe

Elements of the unsorted list: 
97 93 95 99 82 88 
Elements of the newly sorted list: 
99 97 95 93 88 82 
Nach dem Login kopieren
Fazit

In diesem Artikel wurde die Implementierung der Comparator-Schnittstelle erläutert und wir haben auch die Verwendung einiger integrierter Methoden wie „compareTo()“, „Collection.sort()“ und „Collections.reverseOrder()“ entdeckt

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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage