3
我想按字母順序排序對象的變量對象的ArrayList被命名爲「名」。下面是我寫這樣做代碼:爲什麼我的冒泡排序不起作用? - Java的
public void sortName()
{
int j;
for (j = 0; j < theBatters.size()-1; j++)
{
System.out.println(theBatters.get(j).getName().compareToIgnoreCase(theBatters.get(j+1).getName()));
if (theBatters.get(j).getName().compareToIgnoreCase(theBatters.get(j).getName()) > 0)
{ // ascending sort
Collections.swap(theBatters, j, j+1);
j=0;
}
}
}
我相信這個問題有事情做與在交換使用,因爲當我打印的ArrayList後,我用這個sortName行()方法,一切都在同樣的順序,儘管這條線時,它應該返回值大於0:
System.out.println(theBatters.get(j).getName().compareToIgnoreCase(theBatters.get(j+1).getName()));
在你的if語句中,爲什麼要比較get(j)再次獲得(j)? –
@AndrewtheProgrammer發現了這個錯誤。你想擁有'在'compareToIgnoreCase'方法你'if'聲明'theBatter.get(J + 1)。 –
高興能幫上忙,我知道,這樣簡單的錯誤是一個痛苦只是看着它 –