1
svar
72
visningar
paprika_22 behöver inte mer hjälp
Klass word, compareTo metod
Hej!
Jag håller på att implementera en klass, Word som ska representera ord. Jag har dock fastnat på följande del, där jag ska göra olika jämförelser i funktionen compareTo och returnera 0, 1 eller -1. Jag tror det är längd jag ska jämföra mellan Word och count? Jag är också lite osäker på hur man gör med BYNAME, dvs andra delen i if-satsen.
public class Word {
private static final int ORIGINAL = 0, BYNAME = 1, BYCOUNTS = 2;
public String theWord;
public int count;
public static int sortCriterion = ORIGINAL;
Word(String theWord, int count){this.theWord= theWord; this.count = count;}
private int getCount() {return count;}
private String getWord() {return theWord;}
private static void setCriterion(int arg) {}
private static int getCriterion() {return sortCriterion;}
private int compareTo(Word arg) {
if(sortCriterion == ORIGINAL) {
return 2;
}
else if(sortCriterion == BYNAME ) {
this.theWord.compareTo(arg.theWord);
}
else if(sortCriterion == BYCOUNTS) {
if(count<arg.theWord.length()) {
return -1;
}
else if(count==arg.theWord.length()){
return 0;
}
else {
return 1;
}
}
}
}
private static final int ORIGINAL = 0, BYNAME = 1, BYCOUNTS = 2; // ska vara public
public String theWord;
public int count;
public static int sortCriterion = ORIGINAL; // ska vara private
private int compareTo(Word arg) { // ska vara public
// ...
}
Om du skulle jämföra längd så hade du väl jämfört längden på båda orden? Inte count på första och length på andra. Count ska väl representera hur många gånger ordet förekommer i en viss text eller nåt.
Det ser ut som om du ska jämföra this.count med arg.count.
else if(sortCriterion == BYNAME ) {
this.theWord.compareTo(arg.theWord);
}
Det här är rätt, men du behöver returnera resultatet =)