Bonjour!

Je suis en train d'étudier les collections et en particulier les Set.
Je sais que tout objet ajouté à un Set doint pouvoir utiliser la méthode comparteTo().
Cependant je ne sais pas très bien pourquoi elle fonctionne, pourquoi ne devrait elle pas être obligatoirement boolean?

Par exemple dans l'exemple ci-dessous, je ne comprends pas
  1. pourquoi c'est une int?
  2. pourquoi on en met deux?
  3. Comment on l'utilise: doit on faire ? Ca ne renvoie même pas vrai ou faux...


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
 
package JavaL3.Cours;
import java.util.*;
abstract class Transport{
	int numero; 
	Transport(int n){numero = n ;
	}
}
 
class Vehicule extends Transport implements Comparable{
	String marque ;
	String carburant ;
	Vehicule(int n, String marque){
		super(n) ;
		this.marque = marque ;
}
 
	public int compareTo(Object o){
		if (o instanceof Vehicule) return compareTo((Vehicule)o);
		return -1;
	}
 
	int compareTo(Vehicule v){
		return numero -v.numero;
	}
}
 
class VehiculeTourisme extends Vehicule {
	static int millesime = 2009 ;
	int nbPlaces ;
	VehiculeTourisme(int n, String m){
		super(n,m);
	}
 
	public String toString(){
		String res = "Véhicule n° "  + numero ;
		return res ;
	}
}
 
class Utilitaire extends Vehicule {
	int volume ;
	Utilitaire(int n, String m){
		super(n,m);
}
 
	public String toString(){
		String res = " Utilitaire n° "  + numero ;
		return res ;
	}
}
public class Ex62{
	public static void main(String[] args){
		Set ensA = new TreeSet();
		Vehicule v1 = new VehiculeTourisme(45, "Peugeot");
		Vehicule v2 = new Utilitaire(25,"Renault");
		Vehicule v3 = new VehiculeTourisme(35,"Citroen");
		Vehicule v4 = new Utilitaire(35,"Ford");
		ensA.add(v1);
		ensA.add(v2);
		ensA.add(v3);
		ensA.add(v4);
		SortedSet ensB = (SortedSet)ensA;
		System.out.println("Nb. éléments ensA: " + ensA.size());
		System.out.println("Ensemble A:      " + ensA);
		System.out.println("Ensemble A trié: " + ensB);
		v2.numero=65;
		System.out.println("Ensemble A trié: " + ensB);
		System.out.println("dernier élément: " +
		ensB.last());
	}
}