Die Java Comparable-Schnittstelle wird zum Ordnen der Objekte der benutzerdefinierten Klasse verwendet. Diese Schnittstelle befindet sich im Paket java.lang und enthält nur eine Methode namens „compareTo(Object)“. Es bietet nur eine einzelne Sortierreihenfolge, d. h. Sie können die Elemente nur auf der Grundlage eines einzelnen Datenelements sortieren. Es kann sich zum Beispiel um Rollennummer, Name, Alter oder irgendetwas anderes handeln.
Git-Status -s
Methode „compareTo(Object obj)“.
public int CompareTo(Object obj): Es wird verwendet, um das aktuelle Objekt mit dem angegebenen Objekt zu vergleichen. Es kehrt zurück
- positive Ganzzahl, wenn das aktuelle Objekt größer als das angegebene Objekt ist.
- negative Ganzzahl, wenn das aktuelle Objekt kleiner als das angegebene Objekt ist.
- Null, wenn das aktuelle Objekt gleich dem angegebenen Objekt ist.
Wir können die Elemente sortieren von:
- String-Objekte
- Objekte der Wrapper-Klasse
- Benutzerdefinierte Klassenobjekte
Klasse Sammlungen
Sammlungen Die Klasse stellt statische Methoden zum Sortieren der Elemente von Sammlungen bereit. Wenn Sammlungselemente vom Typ Set oder Map sind, können wir TreeSet oder TreeMap verwenden. Allerdings können wir die Elemente der Liste nicht sortieren. Die Collections-Klasse stellt Methoden zum Sortieren der Elemente von Listentypelementen bereit.
Methode der Collections-Klasse zum Sortieren von Listenelementen
public void sort (Listenliste): Es wird verwendet, um die Elemente der Liste zu sortieren. Listenelemente müssen vom Typ Comparable sein.
Hinweis: String-Klassen und Wrapper-Klassen implementieren standardmäßig die Comparable-Schnittstelle. Wenn Sie also die Objekte von String- oder Wrapper-Klassen in einer Liste, einem Satz oder einer Karte speichern, ist diese standardmäßig vergleichbar.
Java-vergleichbares Beispiel
Sehen wir uns das Beispiel der Comparable-Schnittstelle an, die die Listenelemente nach Alter sortiert.
Datei: Student.java
class Student implements Comparable{ int rollno; String name; int age; Student(int rollno,String name,int age){ this.rollno=rollno; this.name=name; this.age=age; } public int compareTo(Student st){ if(age==st.age) return 0; else if(age>st.age) return 1; else return -1; } }
Datei: TestSort1.java
import java.util.*; public class TestSort1{ public static void main(String args[]){ ArrayList al=new ArrayList(); al.add(new Student(101,'Vijay',23)); al.add(new Student(106,'Ajay',27)); al.add(new Student(105,'Jai',21)); Collections.sort(al); for(Student st:al){ System.out.println(st.rollno+' '+st.name+' '+st.age); } } }
105 Jai 21 101 Vijay 23 106 Ajay 27
Vergleichbares Java-Beispiel: umgekehrte Reihenfolge
Sehen wir uns das gleiche Beispiel der Comparable-Schnittstelle an, die die Listenelemente nach Alter in umgekehrter Reihenfolge sortiert.
Datei: Student.java
class Student implements Comparable{ int rollno; String name; int age; Student(int rollno,String name,int age){ this.rollno=rollno; this.name=name; this.age=age; } public int compareTo(Student st){ if(age==st.age) return 0; else if(age<st.age) return 1; else -1; } < pre> <p>File: TestSort2.java</p> <pre> import java.util.*; public class TestSort2{ public static void main(String args[]){ ArrayList al=new ArrayList(); al.add(new Student(101,'Vijay',23)); al.add(new Student(106,'Ajay',27)); al.add(new Student(105,'Jai',21)); Collections.sort(al); for(Student st:al){ System.out.println(st.rollno+' '+st.name+' '+st.age); } } } </pre> <pre> 106 Ajay 27 101 Vijay 23 105 Jai 21 </pre></st.age)>
106 Ajay 27 101 Vijay 23 105 Jai 21