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

Langage Java Discussion :

Problème sur la gestion des ensembles


Sujet :

Langage Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 172
    Points : 73
    Points
    73
    Par défaut Problème sur la gestion des ensembles
    Bonjour

    J'aurais besoin d'un coup de pouce concernant une application qui met en place la gestion des ensembles (union /intersection/...).

    Je suis confronté à un probleme sur la methode union.
    cette methode retourne un objet. Voici ce que fait cette méthode.

    elle crée un nouveau objet.Celui ci recopie tous les
    eléments de l'objet en cours.Ensuite le nouveau objet venant d'etre implémenté copie tous les elements de l'objet reçu en parametre.
    et je retourne le nouveau objet.

    Je vous expose le code :

    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
     
     
    import java.util.*;
     
    public class Ensemble<T> extends AbstractSet<T> {
     
     protected java.util.Vector<T> table = new java.util.Vector<T>();/** permet de mettre en place le tableau vectoriel */
     
      public int size(){ return table.size();}/**  retourne la taille du tableau vectoriel */
     
      public Iterator<T> iterator(){
        return table.iterator();
      }
     
     
      public boolean add(T t){     
        boolean modified =false;
        if(!contains(t)){
            modified = table.add(t);
        }
        return modified;
      }
     
     
      public Ensemble<T> union( Ensemble<? extends T> e) { 
         Ensemble<T> ens = new Ensemble<T>();  //on crée un nouveau objet
         ens.addAll(this); // on copie l'adresse mémoire de l'objet en cours à l'objet ens    
         ens.addAll(e);    // on ajoute tous les elements de l'objet e reçu à l'objet ens   
             return ens;
         }
    Je n'arrive pas à comprendre pourquoi cette méthode ne fonctionne pas. Lorsque je l'execute , il ne se passe rien autrement dit :

    voici le resultat que j'obtient
    creation d'un objet de type <Integer> o1 contenant [1,2]
    creation d'un 2e objet de type <Integer> o2 contenant [3,4]
    lancement de la methode union : o1.union(o2) résultat obtenu : [1,2]
    ce que je devrais avoir est : [1,2,3,4]

    Toute aide sera la bienvenue , je vous remercie d'avance.

  2. #2
    Membre confirmé Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Points : 465
    Points
    465
    Par défaut
    je donne pas cher la classe <T> ....
    je vois pas non plus l'utilité de la fonction union.. tu pourrais simplement ajouter le nouvel ensemble au premier aussi.

  3. #3
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 192
    Points : 252
    Points
    252
    Par défaut
    Je vois pas trop quel est ton problème. Chez moi ton code fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	public static void main(String[] args) {
    		Ensemble<Integer> e1 = new Ensemble<Integer>();
    		Ensemble<Integer> e2 = new Ensemble<Integer>();
    		e1.add(new Integer(1));
    		e1.add(new Integer(2));
    		e2.add(new Integer(3));
    		e2.add(new Integer(4));
     
    		System.out.println(e1);
    		System.out.println(e2);
    		System.out.println(e1.union(e2));
    	}
    me renvoie bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [1, 2]
    [3, 4]
    [1, 2, 3, 4]
    Matthieu

  4. #4
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Tu veux absolument implanter ta propre classe Ensemble?

    Sinon, tu as java.util.Set (l'interface), avec par exemple HashSet et TreeSet comme implémentation...

    Pour l'union, il suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public static <T> void union(Set<T> s1, Set<T> s2) {
        Set<T> result = new HashSet<T>(s1);
        result.addAll(s2);
        return result;
    }

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 172
    Points : 73
    Points
    73
    Par défaut [Résolu] Problème sur la gestion des ensembles
    Bonjour

    Je vous remercie de vos aides. La méthode fonctionne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. question sur la gestion des css
    Par boustor dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 31/07/2006, 16h57
  2. Question pas difficile sur la gestion des listes dynamiques
    Par mulbek dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/04/2006, 13h57
  3. Quelques questions sur la gestion des droits
    Par sylsau dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 04/03/2006, 14h11
  4. [Lex & Yacc] Gestion des ensembles d'entiers
    Par innosang dans le forum Générateurs de compilateur
    Réponses: 7
    Dernier message: 28/11/2005, 19h26
  5. Question sur la gestion des fenetres MDI
    Par RémiONERA dans le forum C++Builder
    Réponses: 6
    Dernier message: 06/07/2005, 07h58

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