Я пытаюсь применить сортировку вставками к массиву объектов, но моя команда else если никогда не скомпилирует и говорит "типы неверных операндов".
Просто интересно, нужно ли мне создать очень специфический метод compareTo
или если есть лучший способ сравнения массивов объектов в методе сортировки вставкой.
РЕДАКТИРОВАТЬ:
Итак, вот я пытаюсь использовать мой метод compareTo
, и он компилируется, но я получаю null pointer exception
на else if
.Почему?
public static void insertElement(WordClass[] Words, int next)
{
WordClass value = Words[next];
int i = next;
while(true)
{
//
if(i == 0)
{
Words[0] = value;
break;
}
else if(Words[i-1].getStr().compareTo(value.getStr()) <= 0)
{
Words[i] = value;
break;
}
else
{
Words[i] = Words[i-1];
i--;
}
}
}
public static void insertionSort(WordClass[] Words)
{
for(int i = 1; i< Words.length; i++)
{
insertElement(Words, i);
}
}
//in WordClass
public int compareTo(WordClass w) //makes WordClass comparable
{
return getStr().compareTo(w.getStr());
}