1 svar
72 visningar
paprika_22 behöver inte mer hjälp
paprika_22 66
Postad: 4 jan 16:20

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

}
thedifference 486
Postad: 4 jan 16:47
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 =)

Svara
Close