logo

JavaInterface comparable

L'interface Java Comparable est utilisée pour classer les objets de la classe définie par l'utilisateur. Cette interface se trouve dans le package java.lang et ne contient qu'une seule méthode nommée compareTo(Object). Il fournit une seule séquence de tri uniquement, c'est-à-dire que vous pouvez trier les éléments sur la base d'un seul membre de données. Par exemple, il peut s'agir du numéro de rôle, du nom, de l'âge ou de toute autre chose.

Méthode compareTo(Object obj)

public int compareTo (Objet obj) : Il est utilisé pour comparer l'objet actuel avec l'objet spécifié. Il revient

tailles de police en latex
  • entier positif, si l'objet actuel est supérieur à l'objet spécifié.
  • entier négatif, si l'objet actuel est inférieur à l'objet spécifié.
  • zéro, si l'objet actuel est égal à l'objet spécifié.

On peut trier les éléments de :

  1. Objets chaîne
  2. Objets de classe Wrapper
  3. Objets de classe définis par l'utilisateur

Classe de collections

Collections La classe fournit des méthodes statiques pour trier les éléments des collections. Si les éléments de la collection sont de type Set ou Map, nous pouvons utiliser TreeSet ou TreeMap. Cependant, nous ne pouvons pas trier les éléments de List. La classe Collections fournit des méthodes pour trier les éléments des éléments de type List.

Méthode de classe Collections pour trier les éléments de la liste

tri public void (liste): Il est utilisé pour trier les éléments de List. Les éléments de liste doivent être du type Comparable.

Remarque : Les classes String et Wrapper implémentent l'interface Comparable par défaut. Ainsi, si vous stockez les objets de classes de chaîne ou de wrapper dans une liste, un ensemble ou une carte, ce sera Comparable par défaut.


Exemple comparable à Java

Voyons l'exemple de l'interface Comparable qui trie les éléments de la liste en fonction de l'âge.

clavier page suivante

Fichier : Étudiant.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; } } 

Fichier : 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 

Exemple comparable Java : ordre inverse

Voyons le même exemple de l'interface Comparable qui trie les éléments de la liste en fonction de l'âge dans l'ordre inverse.

Fichier : Étudiant.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,&apos;Vijay&apos;,23)); al.add(new Student(106,&apos;Ajay&apos;,27)); al.add(new Student(105,&apos;Jai&apos;,21)); Collections.sort(al); for(Student st:al){ System.out.println(st.rollno+&apos; &apos;+st.name+&apos; &apos;+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