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.