Bonjour, je désire trier un tableau d'objets Tri (constructeur String) -->
- implémentation de Comparable
- redéfinition de compareTo()
Ce que je voudrais comprendre :
a) - Je redéfinis complètement CompareTo : NOT OK
b) - Je redéfinis CompareTo avec return : OK
return lettre.compareTo(t.getLettre());
POURQUOI b) fonctionne et pas a) ?
c) - d'autant que ds le cas d'un tableau d'objets (constructeur int)
le a) fonctionne
Merci de m"éclairer
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 package tableau_2; import java.util.Arrays; class Tri implements Comparable<Tri>{ String lettre; Tri (String lettre){ this.lettre = lettre; } public String getLettre(){ return lettre; } public int compareTo(Tri t) { // a) NOT OK //********** if ((this.lettre) < (t.getLettre())) return -1; else if ((this.lettre) > (t.getLettre())) return 1; else return 0; // b) OK //******** return lettre.compareTo(t.getLettre()); } } public class Arrays_Tableau_sort { public static void main(String[] args) { Tri tri0 = new Tri ("a"); Tri tri1 = new Tri ("c"); Tri tri2 = new Tri ("b"); Tri tri3 = new Tri ("d"); Tri[]objets = {tri0,tri1,tri2,tri3}; Arrays.sort(objets); System.out.println("Apres tri" + Arrays.toString(objets)); } }
Partager