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

Java Discussion :

Utiliser equals ou compare


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Utiliser equals ou compare
    Bonjour.

    J'ai une question sur les méthode equals ou compare. Je vous présente donc ma problématique.

    J'ai une classe Activité (qui n'étend ou n'implémente rien) contenant des long, des int, des Dates, d'autres objets...

    Afin de pouvoir faire des tris sur des listes d'activité, j'ai une classe ActiviteComparator implémentant Comparator<Activite> qui contient une méthode compare

    Extrait de cette classe ActiviteComparator :
    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
     
    ...
    	public ActiviteComparator(String tri) {
    		this.tri = tri;
    	}
     
     
     
    	public int compare(Activite a1, Activite a2) 
    	{
    		if(TRI_MATRICULE_DATE_DEBUT.equals(tri))
    		{
    			int compareMatriculeMarin = a1.getMarin().getMaMatcle().compareTo(a2.getMarin().getMaMatcle());
    			if(compareMatriculeMarin==0)
    			{
    				//même marin, je compare les date de début d'activité
    				return a1.getAcDatDeb().compareTo(a2.getAcDatDeb());
    			}
    			return compareMatriculeMarin;
    		}
    		else if(TRI_NOM_PRENOM_DATE_DEBUT.equals(tri))
    		{
    			int compareNomMarin = a1.getMarin().getMaNomuse().compareTo(a2.getMarin().getMaNomuse());
    			if(compareNomMarin==0)
    			{
    				//même marin, je compare les prénoms
    				int comparePrenomMarin = a1.getMarin().getMaPrenom().compareTo(a2.getMarin().getMaPrenom());
    				if(comparePrenomMarin==0)
    				{
    					//même prénom, je compare les date de début d'activité
    					return a1.getAcDatDeb().compareTo(a2.getAcDatDeb());
    				}
    				return comparePrenomMarin;
    			}
    			return compareNomMarin;
    		}
     
    ...
    Celle-ci répond tout à fait à mon attente en terme de tri.

    J'ai un nouveau besoin :
    A partir de deux listes d'activite A et B, je dois comparer les "Activité" en différence dans une liste par rapport à une autre et identifier :
    - les modifications
    - les créations
    - les suppressions

    J'ai donc l'idée de boucler sur les listes pour faire une comparaison entre chaque Activité de chaque liste.

    J'arrive donc à ma question :
    Vaut-il mieux :
    - que j'utilise ma méthode déjà existante compare de mon comparator (en comparant champs à champs.)
    - définir une méthode equals dans la classe Activité.

    Y-aurait-il une différence en terme de rapidité?

    Merci d'avance pour vos réponse

  2. #2
    Membre émérite Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Par défaut
    A mon avis, ce n'est pas la bonne méthode. Il vaut mieux créer/surcharger les méthodes d'insertion, de suppression et de modification pour qu'elles ajoutent une ou des lignes à la liste des modifications.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci pour votre réponse, mais mon problème n'est pas pour mettre mon élément dans une liste de modif, mais bien de comparer 1 à 1 les "activité"

Discussions similaires

  1. Réponses: 10
    Dernier message: 22/07/2014, 13h55
  2. la différence entre la méthode " equals" et "compare"
    Par van der zahir dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 26/07/2011, 11h55
  3. [AC-2003] utiliser strcomp pour comparer 2 dates
    Par chuspyto dans le forum IHM
    Réponses: 3
    Dernier message: 18/01/2010, 06h39
  4. Utilisation de string::compare
    Par Seabast888 dans le forum Débuter
    Réponses: 3
    Dernier message: 29/11/2009, 16h57
  5. [AC-2003] utilisation strcomp pour comparer les dates
    Par chuspyto dans le forum IHM
    Réponses: 1
    Dernier message: 18/09/2009, 15h38

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