HashCode

Forum Programmation : HashCode

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour à tous,

Je vous décris un peu ce que je veux faire.

J'ai une classe nommé "Nom" ou j'ai une méthode CompareTo qui compare des noms.
J'ai une autre classe "Prénom" ou j'ai aussi une méthode
CompareTo qui compare des prenoms
Je me suis assuré que les Noms et Prenoms sont trié avec la méthode CompareTo().

Ensuite, J'ai créé une classe "Membre" dans laquelle je crée un constructeur: "Membre (Nom nom Prenom prenom)";

Dans cette classe, je veux avoir la methode compareTo qui me retourne les Noms et prenoms qui étaient déjà comparés dans leur classe.

Ainsi, si par exemple j'appele mon constructeur dans une autre classe :
Membre nom1=new Membre(Nom.MICHEL,Prenom.DAVID)
Membre nom2=new Membre(Nom.PETER,Prenom.FRANCOIS)
et que je fait le test "nom1.compareTo(nom2) > 0 ", ca devrait normalement me retourner "faux".

Je sais qu'il y'a la méthode hashcode(), qui peut prendre
les numéros du compareTo de la classe Nom et Prenom , mais comment je pourrais prendre ces numéros et les
utiliser dans le CompareTo de la classe "Membre" ?

Merci d'avance


Message édité par stephane81 le 19-11-2006 à 03:33:43
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

j'ai pas bien saisi, tu veux utiliser les méthodes de Nom et Prenom depuis la classe Membre?

Répondre à coca25

Exactement, comme ça je vais avoir une méthode CompareTo()dans Membre qui va allez comparer les noms avec les prenoms qui sont déja comparer dans leur classe.
Ainsi, quand je ferai mon test dans une autre classe ex:
Membre membre1=new Membre(Nom.MICHEL,Prenom.DAVID)
Membre membre2=new Membre(Nom.PETER,Prenom.FRANCOIS)
et que je fait le test "membre1.compareTo(membre2) > 0 ", ca devrait normalement me retourner "faux".

Répondre à stephane81

ben tu les appelles depuis la méthode crée sous Membre:

Code :
  1. public int compareTo (Membre membre)
  2. {
  3.   int retour = this.nom.compareTo (membre.nom);
  4.   if (retour == 0)
  5.     return this.prenom.compareTo (membre.prenom);
  6.   else
  7.     return retour;
  8. }


au fait c'est bien du java le langage?

Répondre à coca25

Aussi simple que ça?
Oui c'est du java

Répondre à stephane81

Salut coca25.

Si par exemple maitenant , j'ai 2 membres avec le même prénom
ex (David Lucas, David Beland), comment je pourrais dire que si
je trouve un nom qui se repète 2 fois,retourner le résultat 2, ou si il y'a un nom qui se répète 3 fois retourner le résultat 3.
La logique je l'ai (l'algoritme) mais c 'est l'implemantation dans java qui me dérange.

Merci d'avance

Répondre à stephane81

comment tu stocke tes membre, un tableau, une liste ??
poste le bout de code ou tu bloques, on pourra mieux t'aider...
java c'est pas mon fort, je me debrouille sans plus

Répondre à coca25

En fait je stocke mes membres dans une collection dans chaque classe : les noms dans la classe "Nom", Les prénoms dans la classe "Prenom". Dans la classe nom j'ai:
public static List NOMS =
Collections.unmodifiableList(Arrays.asList(new Nom[] {
DAVID, MICHEL, LUC, DAVID}));
Dans la classe prénom j'ai:
public static List PRENOMS =
Collections.unmodifiableList(Arrays.asList(new Prenom[] {
BOURBOIS, LUCAS, HENRY, LUCIO}));


Message édité par stephane81 le 21-11-2006 à 01:56:23
Répondre à stephane81

Pour être plus court, comment on peut dire que dans une liste ou dans un tableau on a 2 ou 3 éléments pareilles
Si dans une liste on a 2 éléments pareilles, alors ..............
Si dans une liste on a 3 éléments pareilles, alors..............
etc,

Répondre à stephane81

tu tries les listes, et tu comptes le nombre de fois qu'une chaine de caracteres est présentes

Répondre à coca25

Justement, je veux faire en sorte que je ne connais pas la chaine qui se repète 2 ou 3 fois. Je pense que ca se fait, si c'est le cas, tu a un exemple ?

Merci

Répondre à stephane81
Tom's Guide > Forum > Programmation > HashCode
Aller à :

Il y a 1760 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens