ArrayList<Object> 的比较器不能正常工作

Comparator of ArrayList<Object> doesn't work properly

请帮我解决这个问题。我一直在尝试编写不同的比较器,其中 none 可以正常工作。

他们喜欢按部分分类。让它成为这样的值:0, 4, 1, 9 , 18, 3, 18, 9.

排序如下:9, 9, 0, 1, 3, 18, 18, 4.

一些 "ordered" 随机我会说。

请帮忙找出我做错了什么。

Class 与数据和 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);

价格是字符串,但带有数字值。也许是问题所在...

感谢您的帮助。

替换

return right.getPrice().compareTo(left.getPrice());

return new Double(right.getPrice().trim()).compareTo(
  new Double(left.getPrice().trim())
);