我有一个类型为"Product"的对象和一个包含多个Product对象的"Product"类型的ArrayList。
产品
String ProductID;
int ProductRating;
我想遍历ArrayList
,并根据它们的ProductRating对这些产品进行排序;从最高到最低,因此ArrayList
中的第一个项目包含最高评级,然后递减。
使用以下解决方案
public class ProductRatingSort implements Comparator<Product> {
@Override
public int compare(Product arg0, Product arg1) {
// TODO Auto-generated method stub
int f = arg0.getProductRating();
int s = arg1.getProductRating();
if(f>s)
return 1;
return -1;
}
}
然后从你想排序数组列表的地方调用这个
Collections.sort(arrProduct, new ProductRatingSort()); // your array list
您可以使用Collections.sort(List<T> list, Comparator<? super T> c)
实现作为这样的
Collections.sort(productList, new Comparator<Product>() {
@Override
public int compare(Product p1, Product p2) {
return p1.ProductRating - p2.ProductRating; // Ascending
}
});