[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


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
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