Trier un tableau [Débutant] - Java - Programmation
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
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
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.