Пожалуйста, помогите мне решить эту проблему. Я уже пытался написать разные компараторы, и никто из них не работает должным образом.Компаратор ArrayList <Object> не работает должным образом
Они любят сортировать по частям. Пусть это будет, как значения: 0, 4, 1, 9 , 18, 3, 18, 9.
И сортирует так: 9, 9, 0, 1, 3, 18, 18, 4.
Некоторые «заказал» случайное, я бы сказал.
Пожалуйста, помогите найти то, что я сделал неправильно.
класса с данными и Comparator
:
public class CoursesData {
private String url;
private String name;
private String lessonsCount;
private String isFree;
private String price;
private String language;
private String difficulty;
private AuthorData author;
public static Comparator<CoursesData> CoursesDataPriceComparator = new Comparator <CoursesData>() {
public int compare (CoursesData left, CoursesData right){
return right.getPrice().compareTo(left.getPrice());
}
};
....(getter-setters)
И как я использую этот компаратор:
ArrayList<CoursesData> coursesDatas = parserJson.getCourses();
Collections.sort(coursesDatas, CoursesData.CoursesDataPriceComparator);
mAdapter = new CoursesItemAdapter(getActivity(),
R.layout.catalog_list_item, coursesDatas);
Цена является строка, но с цифрами значений. Возможно, это проблема ...
Спасибо за любую помощь.
* Может быть, его проблема *. Это на самом деле. Вы можете использовать 'Integer.parseInt' для получения фактического' int' и сделать сравнение между этими – Blackbelt