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

Java: Sorting (Items in ArrayList by their Properties

我有 "Product" 类型的对象和包含多个产品对象的 'Product' 类型的 ArrayList。

产品

String ProductID;
int ProductRating;

我想遍历 ArrayList 并按 ProductRating 对这些 Products 进行排序;从最高到最低,因此 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;
}
}

然后从你想要排序的地方调用它 arraylist

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
    }
});