Я пытаюсь в алфавитном порядке сортировать 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 нашел ошибку. Вы хотите иметь 'theBatter.get (j + 1)' в своем '' '' '' 'методе' compareToIgnoreCase'. –
Рад, что я мог бы помочь, я знаю, что такие простые ошибки можно найти, просто глядя на него –