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));
 
	}
}