ArrayList <object>的比较器无法正常工作</object>

时间:2015-02-05 14:39:54

标签: java android arraylist comparator

请帮我解决这个问题。我已经尝试编写不同的比较器,但没有一个正常工作。

他们喜欢按部分排序。让它成为像0, 4, 1, 9 , 18, 3, 18, 9.

这样的值

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

有些&#34;有序&#34;随便我会说。

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

包含数据的类和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);

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

替换

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

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