IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Comment marche la méthode CompareTo?


Sujet :

avec Java

  1. #1
    Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Novembre 2015
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 156
    Points : 52
    Points
    52
    Par défaut Comment marche la méthode CompareTo?
    Bonjour!

    Je suis en train d'étudier les collections et en particulier les Set.
    Je sais que tout objet ajouté à un Set doint pouvoir utiliser la méthode comparteTo().
    Cependant je ne sais pas très bien pourquoi elle fonctionne, pourquoi ne devrait elle pas être obligatoirement boolean?

    Par exemple dans l'exemple ci-dessous, je ne comprends pas
    1. pourquoi c'est une int?
    2. pourquoi on en met deux?
    3. Comment on l'utilise: doit on faire ? Ca ne renvoie même pas vrai ou faux...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    package JavaL3.Cours;
    import java.util.*;
    abstract class Transport{
    	int numero; 
    	Transport(int n){numero = n ;
    	}
    }
     
    class Vehicule extends Transport implements Comparable{
    	String marque ;
    	String carburant ;
    	Vehicule(int n, String marque){
    		super(n) ;
    		this.marque = marque ;
    }
     
    	public int compareTo(Object o){
    		if (o instanceof Vehicule) return compareTo((Vehicule)o);
    		return -1;
    	}
     
    	int compareTo(Vehicule v){
    		return numero -v.numero;
    	}
    }
     
    class VehiculeTourisme extends Vehicule {
    	static int millesime = 2009 ;
    	int nbPlaces ;
    	VehiculeTourisme(int n, String m){
    		super(n,m);
    	}
     
    	public String toString(){
    		String res = "Véhicule n° "  + numero ;
    		return res ;
    	}
    }
     
    class Utilitaire extends Vehicule {
    	int volume ;
    	Utilitaire(int n, String m){
    		super(n,m);
    }
     
    	public String toString(){
    		String res = " Utilitaire n° "  + numero ;
    		return res ;
    	}
    }
    public class Ex62{
    	public static void main(String[] args){
    		Set ensA = new TreeSet();
    		Vehicule v1 = new VehiculeTourisme(45, "Peugeot");
    		Vehicule v2 = new Utilitaire(25,"Renault");
    		Vehicule v3 = new VehiculeTourisme(35,"Citroen");
    		Vehicule v4 = new Utilitaire(35,"Ford");
    		ensA.add(v1);
    		ensA.add(v2);
    		ensA.add(v3);
    		ensA.add(v4);
    		SortedSet ensB = (SortedSet)ensA;
    		System.out.println("Nb. éléments ensA: " + ensA.size());
    		System.out.println("Ensemble A:      " + ensA);
    		System.out.println("Ensemble A trié: " + ensB);
    		v2.numero=65;
    		System.out.println("Ensemble A trié: " + ensB);
    		System.out.println("dernier élément: " +
    		ensB.last());
    	}
    }

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Set utilise equals et hashcode. Compareto permet de trier. On utilise ca dans un sortedset. Comme dit la javadoc, cette methode recherche renvoie -1 0 ou 1 si la valeur est inférieure égale ou supérieure à l'argument.

Discussions similaires

  1. comment marche fftw???
    Par aider une débutante dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 11/11/2007, 10h33
  2. Réponses: 2
    Dernier message: 31/08/2005, 16h12
  3. Comment surcharger la méthode OnClose d'un TFrame ?
    Par sdebrois dans le forum Composants VCL
    Réponses: 2
    Dernier message: 17/01/2005, 20h57
  4. Réponses: 4
    Dernier message: 02/07/2004, 10h31
  5. Comment marche GlutSwapBuffers() ?
    Par Sloughidog dans le forum OpenGL
    Réponses: 2
    Dernier message: 29/09/2002, 14h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo