如何排序数组列表整数类型

Kir*_*eph -2 java sorting android arraylist android-studio

我有一个对象类Product,如下所示

public class Product {
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    String name;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    int price;
    String id;
    String image;
}
Run Code Online (Sandbox Code Playgroud)

我想根据价格对产品进行分类.我的阵列是

 List<Product> products=new ArrayList<>();

 for(int i=0;i<ja3.length();i++){
     JSONObject jsonObject=ja3.getJSONObject(i);
     Product product=new Product();
     product.setId(jsonObject.getString("product_id"));
     product.setImage("http://ezybzy.com/images/"+jsonObject.getString("product_id")+"/1.jpg");
     product.setPrice(jsonObject.getInt("product_SP"));
     product.setName(jsonObject.getString("product_name"));
     products.add(product)
 }
Run Code Online (Sandbox Code Playgroud)

我做到了

Collections.sort(products, new Comparator<Product>() {
    @Override
    public int compare(Product lhs, Product rhs) {
        return lhs.getPrice().compareTo(rhs.getPrice());
    }
})
Run Code Online (Sandbox Code Playgroud)

但问题是.compareTo(rhs.getPrice()部分是错误的.它不能使用compareTo方法.我希望我的arrayList在产品价格的基础上排序.价格是整数值.但是当我把它改为字符串类型我得到CompareTo但它仍然由于字符串类型未分类.请帮助我

Ric*_*rdo 9

Collections.sort(products, new Comparator< Product >() {
    @Override public int compare(Product p1, Product p2) {
        return p1.getPrice()- p2.getPrice(); // Ascending
    }
});
Run Code Online (Sandbox Code Playgroud)

请注意,这是Integers之间的比较,因此无需将其更改为String