[Débutant] Trier un tableau

Trier un tableau [Débutant] - Java - Programmation

Marsh Posté le 04-11-2007 à 21:43:23    

Bonjour,  
 
Je dois utiliser la méthode compareTo pour trier un tableau de chaine de caractere par ordre alphabétique, je sais que cette méthode donne trois réponses possibles: 0 si les deux chaînes de caractères comparées sont identiques, -1 si la première est alphabétiquement inférieure à la deuxième, et 1 dans le cas contraire. Mais je ne vois pas trop par où commencer pour trier mon tableau, et comment utiliser la méthode compareTo, pour le moment voici mon code:  
 
 
public class Mot {  
String Mot;  
 
public Mot (String mot){  
this.Mot=mot;  
}  
 
public String getMot(){  
return Mot;  
}  
 
public void stMot(String mot){  
this.Mot=mot;  
}  
 
public void afficher(){  
System.out.println("- "+Mot);  
}  
 
}  
 
public class Dictionnaire {  
int taillemax = 20;  
int n;  
Mot[]tab;  
 
public int getN() {  
return n;  
}  
 
public void setN(int n) {  
this.n = n;  
}  
 
public Mot[] getTab() {  
return tab;  
}  
 
public void setTab(Mot[] tab) {  
this.tab = tab;  
}  
 
public int getTaillemax() {  
return taillemax;  
}  
 
public void setTaillemax(int taillemax) {  
this.taillemax = taillemax;  
}  
 
public Dictionnaire(int n, Mot[]t){  
tab = new Mot [taillemax];  
this.n=n;  
for(int i=0;i<n;i++){  
tab[i]=t[i];  
}  
this.n=n;  
}  
 
public void afficher(){  
for(int i=0; i<n; i++){  
tab[i].afficher();  
}  
}  
 
public void inserer(String a){  
n++;  
if(n==taillemax){  
System.out.println("c'est plein" );  
}  
else{  
tab[n]=new Mot(a);  
}  
}  
 
public boolean PasPlein(){  
return((n==taillemax)|(n!=0));  
}  
 
public int rechercher(String x){  
int i=0;  
while(i<(n) && ! x.equals(tab[i].getMot())){  
i++;  
}  
if (i<n){  
return i;  
}  
else{  
return -1;  
}  
}  
 
public void remplacer(String a, String b){  
int i=0;  
i=rechercher(a);  
tab[i]=new Mot(b);  
}  
 
 
public void effacer (String x){  
int i=0;  
i=rechercher(x);  
tab[i]=new Mot("" );  
}  
 
}  
 
 
 
Merci d'avance.

Reply

Marsh Posté le 04-11-2007 à 21:43:23   

Reply

Marsh Posté le 05-11-2007 à 09:20:09    

1. Pour compareTo, la définition exacte est  

Citation :

the value 0 if the argument is a string lexicographically equal to this string; a value less than 0 if the argument is a string lexicographically greater than this string; and a value greater than 0 if the argument is a string lexicographically less than this string.


si tu testes sur 0, -1 et +1 tu vas te planter
 
2. http://en.wikipedia.org/wiki/Bubble_sort (il y a d'autres algos de tri généralistes, cf http://en.wikipedia.org/wiki/Sorti [...] algorithms mais le bubble sort est le plus simple


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 05-11-2007 à 09:53:52    

- Ta classe "Mot", c'est pas un peu overkill pour une simple String? Ou bien c'est fait exprès?
 
- D'ailleurs, tu as une méthode inserer(String a) sur Dictionnaire, ce qui met à néant l'utilité d'avoir une classe Mot.
 
- Tu dois implémenter le tri toi-même, ou bien tu peux te reposer sur ce qu'offre le JDK? Autrement dit, c'est pour un cours Java ou pour un cours d'algo?
 
- Es-tu obligé d'utiliser des tableaux plutôt que des collections?
 
- Balises "code" et indents pour la lisibilité stp


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed