Java Vergelijkbare interface wordt gebruikt om de objecten van de door de gebruiker gedefinieerde klasse te ordenen. Deze interface is te vinden in het pakket java.lang en bevat slechts één methode met de naam CompareTo(Object). Het biedt slechts één sorteervolgorde, dat wil zeggen dat u de elementen alleen op basis van één gegevenslid kunt sorteren. Het kan bijvoorbeeld rolnummer, naam, leeftijd of iets anders zijn.
CompareTo(Object obj)-methode
public int vergelijkTo(Object obj): Het wordt gebruikt om het huidige object te vergelijken met het opgegeven object. Het keert terug
wat is een hashset in Java
- positief geheel getal, als het huidige object groter is dan het opgegeven object.
- negatief geheel getal, als het huidige object kleiner is dan het opgegeven object.
- nul, als het huidige object gelijk is aan het opgegeven object.
We kunnen de elementen sorteren van:
- String-objecten
- Wrapper-klasseobjecten
- Door de gebruiker gedefinieerde klasseobjecten
Collecties klasse
Collecties class biedt statische methoden voor het sorteren van de elementen van collecties. Als collectie-elementen Set of Map zijn, kunnen we TreeSet of TreeMap gebruiken. We kunnen de elementen van Lijst echter niet sorteren. De klasse Collections biedt methoden voor het sorteren van de elementen van elementen van het type Lijst.
string.format in Java
Method of Collections-klasse voor het sorteren van lijstelementen
public void sort (Lijstlijst): Het wordt gebruikt om de elementen van Lijst te sorteren. Lijstelementen moeten van het type Vergelijkbaar zijn.
Opmerking: de klassen String en Wrapper implementeren standaard de Comparable-interface. Dus als u de objecten van string- of wrapper-klassen in een lijst, set of kaart opslaat, is deze standaard Vergelijkbaar.
Vergelijkbaar Java-voorbeeld
Laten we het voorbeeld bekijken van de Vergelijkbare interface die de lijstelementen sorteert op basis van leeftijd.
Bestand: 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; } }
Bestand: 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
Vergelijkbaar Java-voorbeeld: omgekeerde volgorde
Laten we hetzelfde voorbeeld bekijken van de Comparable-interface die de lijstelementen in omgekeerde volgorde sorteert op basis van leeftijd.
soorten testen
Bestand: 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