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)とget(j)をもう一度比較していますか? –
@AndrewtheProgrammerがバグを見つけました。 'compareToIgnoreCase'メソッドの' if'文に 'theBatter.get(j + 1)'を入れたいとします。 –
喜んで私は助けることができる、私はそれのような単純な間違いがちょうどそれを見ることによって見つけるための痛みであることを知っている –