У меня есть Список приложений, в которых каждая сущность представляет пользовательский объект.Сортировка списка пользовательского объекта w.r.t. член данных
List<String> Applications = new ArrayList<String>();
У меня есть класс приложений, как это:
public Class Application
{
private String ApplicationName;
private int Priority
}
Мне нужно сортировать приложения w.r.t. Приоритет. Обратите внимание: приоритет может содержать только три значения, т. Е. 1, 2 и 3 для высоких, средних и низких соответственно.
Я реализовал Comparator для сортировки списка, как это:
Collections.sort(this.Applications, new Comparator<Application>()
{
@Override
public int compare(Application App1, Application App2)
{
return App1.Priority.compareTo(App2.Priority);
}
});
Но компилятор дает мне эту ошибку:
Cannot invoke compareTo(int) on the primitive type int
Основная проблема заключается в том, что 'int' примитивный тип, а не класс, а есть ** НЕТ ** методы для вызова из примитивного типа. [Ответ Луисвассермана] (http://stackoverflow.com/a/21915358/1065197) объясняет, как это решить. –
В качестве примечания, соглашение Java состоит в том, что имена переменных и методов должны начинаться с строчной буквы: 'app1.priority'. Следуя этому соглашению, ваш код будет намного легче понять другим. – chrylis