谁能建议如何在android Recycler View中按产品价格实现排序[关闭]

问题描述 投票:-5回答:1

由于我需要对数组List的值进行排序,我无法获得不同算法的排序算法,如选择排序,快速排序和冒泡排序。我是Android应用程序开发的新手,请帮我解决这个问题。提前致谢

public class TestingSort {
public static void main(String args[]){

        ToSort toSort1 = new ToSort(new Float(3), "3");
        ToSort toSort2 = new ToSort(new Float(6), "6");
        ToSort toSort3 = new ToSort(new Float(9), "9");
        ToSort toSort4 = new ToSort(new Float(1), "1");
        ToSort toSort5 = new ToSort(new Float(5), "5");
        ToSort toSort6 = new ToSort(new Float(0), "0");
        ToSort toSort7 = new ToSort(new Float(3), "3");
        ToSort toSort8 = new ToSort(new Float(-3), "-3");

        List<ToSort> sortList = new ArrayList<ToSort>();
        sortList.add(toSort1);
        sortList.add(toSort2);
        sortList.add(toSort3);
        sortList.add(toSort4);
        sortList.add(toSort5);
        sortList.add(toSort6);
        sortList.add(toSort7);
        sortList.add(toSort8);

        Collections.sort(sortList);

        for(ToSort toSort : sortList){
            System.out.println(toSort.toString());
        }
    }

}

     public class ToSort implements Comparable<ToSort> {

    private Float val;
    private String id;

    public ToSort(Float val, String id){
        this.val = val;
        this.id = id;
    }

    @Override
    public int compareTo(ToSort f) {

        if (val.floatValue() > f.val.floatValue()) {
            return 1;
        }
        else if (val.floatValue() <  f.val.floatValue()) {
            return -1;
        }
        else {
            return 0;
        }

    }

    @Override
    public String toString(){
        return this.id;
    }
}
android sorting comparable
1个回答
1
投票

你需要使用ComparatorCollections.sort()

Collections.sort(YourArraylist, new Comparator<ModelObject>(){
   public int compare(ModelObject o1, ModelObject o2){
      return o1.getPrice() - o2.getPrice();
   }
});

如果您使用的是Java 8,则可以使用以下代码。

Collections.sort(YourArraylist, (o1, o2) -> o1.getPrice() - o2.getPrice());
© www.soinside.com 2019 - 2024. All rights reserved.