Java:排序(ArrayList中的项按其属性排序)



我有一个类型为"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
    }
});

最新更新