Probleme interface Comparable
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:
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??