Bonjour je dois realiser l exercice suivant :

Instancier un HashSet, un Vector, et une HashTable, ajouter à chacun de ces objets plusieurs objets Formulaone ayant une propriété pilotename (String). Pour ce qui concerne le Map, choisissezcomme clé de reference à l'objet FormulaOne le nom du pilote.
Créer une classe Race qui possède une methode display et qui prend en paramètre un Object.Cete méthode devra pouvoir recevoir les 3 collections précédemment créées et en énumerer le nom de tous les pilotes. Ajouter un main qui utilise cette méthode avec les 3 objets.

Jusque la je pense avoir reussi j ai ecrit le code suivant :

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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145

pour le main :

package exo;

import java.util.*;

public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        
        HashSet hs = new HashSet();
        Vector vect = new Vector();
        Hashtable ht = new Hashtable();
        
        FormulaOne p1 = new FormulaOne ("Alonzo");
        FormulaOne p2 = new FormulaOne ("Massa");
        FormulaOne p3 = new FormulaOne ("Schumacher");
        FormulaOne p4 = new FormulaOne ("Prost");
        Race r1 = new Race ("Le Mans");
        
        hs.add(p1);
        hs.add(p2);
        
        
        vect.add(p2);
        vect.add(p3);
        
        ht.put(p3.piloteName, p3);
        ht.put(p4.piloteName, p4);
        
        r1.display(hs);
        r1.display(vect);
        r1.display(ht);
        
        
    }

}




    }

pour la classe FormulaOne

package exo;

/**
 *
 * @author gwen
 */
public class FormulaOne {

    
    protected String piloteName;
    
    public FormulaOne(String _piloteName){
        
        piloteName=_piloteName;
    }
    
    public void afficher (){
        
        System.out.println(piloteName);
        
    }
    
    
    
}

et pour la classe race : 

package exo;
import java.util.*;
/**
 *
 * @author gwen
 */
public class Race  {
    
    private String nom;
    
    public Race (String _nom){
        
        nom=_nom;
        
    }
    
    public void display (Object o){
        
        int i = 0;
        Iterator it;
        Object m;
        
        if (o instanceof HashSet){
            
          HashSet hs = (HashSet)o;
          it=hs.iterator();
          while(it.hasNext()){
              
             FormulaOne f =(FormulaOne)it.next();
             f.afficher();
  
            }    
        }else{
            
            if (o instanceof Vector){
                
                Vector v = (Vector)o;
                it=v.iterator();
                while(it.hasNext()){
                    
                    FormulaOne f = (FormulaOne)it.next();
                    f.afficher();
                    
                }
                
                
            }else{
                
                Hashtable ht = (Hashtable)o;
                Iterator itv = ht.values().iterator();
               
                
                while (itv.hasNext()){
                    
                    FormulaOne res = (FormulaOne)itv.next();
                    res.afficher();
                }
                
            }
            
        }       
        
    }
   
}
ensuite l'exercice a une 2eme partie et c'est la que je coince :

Modifier la classe FormulaOne afin qu'elle implemente Comparable en fonction du nom du pilote, remplacer le HashSet par un TreeSet et le Hashtable par un TreeMap et faites en sorte que la méthode display renvoie une liste de pilote ordonnées suivant le nom du pilote quelque soit l objet reçu en paramètre (Vector, TreeSet ou TreeMap)

Le probleme et que je ne sais ni ce que c'est qu TreeSet et un TreeMap ni comment utiliser l interface Comparable (qui a mon avis doit permettre de comparer 2 String?) et par conséquent je ne sais pas ce qu'il faut que je fasse

Quelqu'un pourrait m aider svp??