谁能建议如何在android Recycler View中按产品价格实现排序[关闭]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谁能建议如何在android Recycler View中按产品价格实现排序[关闭]相关的知识,希望对你有一定的参考价值。
由于我需要对数组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;
}
}
答案
你需要使用Comparator
和Collections.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());
以上是关于谁能建议如何在android Recycler View中按产品价格实现排序[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Android RecyclerView 绘制流程及Recycler缓存
如何从android studio中的recycler视图将数据添加到SQLite数据库中
Android RecyclerView 绘制流程及Recycler缓存
在Recycler视图上添加图像视图时,Android导航抽屉动画滞后/减速