Сортировка вставок со строками

1

Попытка написать сортировку вставки для сортировки массива строк.

public static void insertionSort(String[] list) 
{
    for (int i = 1; i <list.length; i++)
    {
        String currentElement = list[i];
        int k;
        for (k=i-1; k >= 0 && list[k] > currentElement; k--) //error here
        {
            list[k+1]=list[k];
        }
        list[k+1] = currentElement;
    }
}

Я получаю ошибку. Оператор> не определен для типа аргумента, но я думал, что узнал в классе, что вы можете сравнивать строки с помощью>, <и т.д.? Как я могу решить эту проблему?

Теги:
string
for-loop
insertion-sort

2 ответа

4

Вы не можете сравнивать объекты, включая String s, с операторами сравнения, такими как >. Вы должны вызвать метод, который выполняет сравнение. String Comparable <String>, поэтому замените

list[k] > currentElement

с

list[k].compareTo(currentElement) > 0
0

Нет. Вы не можете сравнивать любой объект, включая String, с более крупными или меньшими операторами.

Вы можете сравнивать строки, используя сопоставление, которое зависит от языка. Если вы хотите сравнить строки на основе значений Unicode своих символов, вы можете использовать метод compareTo(String) класса String. См. Документацию по Java для класса String.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню