進口?Java . util . scanner;
//必須實現可比接口。
公?班級?詞?器物?可比& ltWord & gt{
私人?finalString?word
公?字符串?getWord()?{
回歸?word
}
//忽略構造函數什麽的
公?Word(字符串?word)?{
如果(字?==?空)
扔?新的?NullPointerException("妳不能創造空洞的詞!");
這個詞?=?word
}
//實現compareTo方法。主要的排序思路在這裏。
@覆蓋
公?int?compareTo(Word?目標)?{
如果(目標?==?空)
回歸?1;
if(target.getWord()。equalsIgnoreCase(getWord()))
回歸?0;
char[]?自傳體?=?getWord()。toLowerCase()。toCharArray();
char[]?targetLetters?=?target.getWord()。toLowerCase()。toCharArray();
int?selfLength?=?selfLetters .長度;
int?塔格朗思?= targetLetters.length
int?minLength?=?Math.min(selfLength,?targeLength);
for(int?指數?=?0;指數?& lt?minLengthindex++){
if(selfLetters[index]?& gt?targetLetters[index]){
回歸?1;
}
不然呢?如果?(selfLetters[index]?& lt?targetLetters[index]){
回歸?-1;
}
繼續;
}
回歸?selfLength?& gt?塔格朗思?1?:?-1?;
}
//重寫?ToString?方法打印輸出。
@覆蓋
公?字符串?toString()?{
回歸?word
}
//Main方法。用來看效果的。
公?靜電?作廢?main(String[]?args)?{
?
int?尺寸?=?5;//用於測試的數組長度(字數);
//?創建壹個Word數組來保存輸入的單詞。
Word[]?文字?=新?word[size];
掃描儀?sc?=?新的?掃描儀(system . in);
for(int?I = 0;我& lt尺寸;i++)
{
System.out.println("請輸入"+(i+1)+"字");
話[我]?=?新的?word(sc . nextline());
}
sc . close();//關閉流
System.out.println("排序結果:");
//使用Arrays.sort方法進行排序,排序與自動調用compareTo方法進行比較。
Arrays.sort(單詞);
//打印出結果
system . out . println(arrays . tostring(words));
}
}這是我剛剛寫的。測試結果沒問題。邏輯可能不是很嚴謹,但作為作業應該足夠了。