谁能建议如何在 android Recycler View 中实现按产品价格排序
Can anyone suggest how to implement the sorting by price of a product in android Recycler View
因为我需要对数组列表的值进行排序,所以我无法获得不同算法(如选择排序、快速排序和冒泡排序)的排序算法。我是 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();
}
});
如果你使用的是Java8,你可以使用下面的代码。
Collections.sort(YourArraylist, (o1, o2) -> o1.getPrice() - o2.getPrice());
因为我需要对数组列表的值进行排序,所以我无法获得不同算法(如选择排序、快速排序和冒泡排序)的排序算法。我是 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();
}
});
如果你使用的是Java8,你可以使用下面的代码。
Collections.sort(YourArraylist, (o1, o2) -> o1.getPrice() - o2.getPrice());