Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按升序和降序整数排序_Java_Android - Fatal编程技术网

Java 按升序和降序整数排序

Java 按升序和降序整数排序,java,android,Java,Android,我有一个POJO类,它的内容是对从JSON获取的整数进行排序。当我实现它时,Integer不能进行升序或降序排序 示例:JSON有许多数据,一个数据有一个整数。调用所有数据并单击“升序排序”,然后单击“整数升序排序”。但我使用这样的代码,不能对整数排序 代码: public class ModelNameProductUrutkan { @SerializedName("price_regular") private int price; public int getP

我有一个POJO类,它的内容是对从JSON获取的整数进行排序。当我实现它时,Integer不能进行升序或降序排序

示例:JSON有许多数据,一个数据有一个整数。调用所有数据并单击“升序排序”,然后单击“整数升序排序”。但我使用这样的代码,不能对整数排序

代码:

public class ModelNameProductUrutkan {
    @SerializedName("price_regular")
    private int price;

    public int getPrice() {
        return price;
    }

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

    // Filter Descending Integer
    public static final Comparator<ModelNameProductUrutkan> sortByHighPrice = new Comparator<ModelNameProductUrutkan>() {
        @Override
        public int compare(ModelNameProductUrutkan o1, ModelNameProductUrutkan o2) {
            return o2.getPrice() - o1.getPrice();
        }
    };

    // Filter Ascending Integer
    public static final Comparator<ModelNameProductUrutkan> sortByLowPrice = new Comparator<ModelNameProductUrutkan>() {
        @Override
        public int compare(ModelNameProductUrutkan o1, ModelNameProductUrutkan o2) {
            return o1.getPrice() - o2.getPrice();
        }
    };
公共类ModelNameProductUrutkan{
@序列化名称(“常规价格”)
私人int价格;
public int getPrice(){
退货价格;
}
公共无效设置价格(整数价格){
这个价格=价格;
}
//过滤递减整数
公共静态最终比较器sortByHighPrice=新比较器(){
@凌驾
公共整数比较(ModelNameProductUrutkan o1,ModelNameProductUrutkan o2){
返回o2.getPrice()-o1.getPrice();
}
};
//过滤升序整数
公共静态最终比较器sortByLowPrice=新比较器(){
@凌驾
公共整数比较(ModelNameProductUrutkan o1,ModelNameProductUrutkan o2){
返回o1.getPrice()-o2.getPrice();
}
};
SortingInteger.java:

private List<ModelNameProductUrutkan> modelNameProductUrutkans;

...............

    filterHargaTerendah.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Call<JsonObject> getProduct = baseApiService.getDetailProductCategory(category_id, perPage, source_id);
            getProduct.enqueue(new Callback<JsonObject>() {
                @Override
                public void onResponse(Call<JsonObject> call, Response<JsonObject> response) {
                    if (!response.isSuccessful()) {
                        Log.e(TAG, "Response Error : " + response.code());
                    } else {
                        try {
                            JSONObject jsonObject = new JSONObject(response.body().toString());
                            JSONObject object = jsonObject.getJSONObject("data");
                            JSONArray jsonArray = object.getJSONArray("items");
                            modelNameProductUrutkans = new ArrayList<>();

                            for(int a = 0; a <= jsonArray.length(); a++) {
                                JSONObject objectData = jsonArray.getJSONObject(a);

                                ModelNameProductUrutkan modelNameProductUrutkan = new ModelNameProductUrutkan();
                                modelNameProductUrutkan.setPrice(objectData.getInt("price_regular"));
                                modelNameProductUrutkans.add(modelNameProductUrutkan);

                                Toast.makeText(getContext(), "Sort By Low Price : " + modelNameProductUrutkan.getPrice(), Toast.LENGTH_SHORT).show();
                            }

                            Collections.sort(modelNameProductUrutkans, ModelNameProductUrutkan.sortByLowPrice);
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                }

                @Override
                public void onFailure(Call<JsonObject> call, Throwable t) {
                    Log.e(TAG, "onFailure: " + t.getMessage());
                }
            });
        }
    });
私有列表modelnametroducturutkans;
...............
filterArgaterEndah.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
调用getProduct=baseApiService.getDetailProductCategory(category\u id,perPage,source\u id);
getProduct.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
如果(!response.issusccessful()){
Log.e(标记,“响应错误:+Response.code());
}否则{
试一试{
JSONObject=newJSONObject(response.body().toString());
JSONObject object=JSONObject.getJSONObject(“数据”);
JSONArray JSONArray=object.getJSONArray(“items”);
modelNameProductUrutkans=新的ArrayList();

对于(int a=0;a更改为以下方式,它应该可以工作:

return Integer.compare(o1.getPrice(), o2.getPrice());

不要使用减号运算符(
-
)来比较数值。请调用,或者改为。“但我使用这样的代码,无法对整数排序”对不起,不知道这意味着什么。您有什么问题?请阅读“”我的意思是,当我在调用JSON@Andreasy后单击按钮sort by ASSENDING或DEVENDING时,无法对整数进行排序。在
集合之后,您似乎没有对
modelNameProductUrutkans
列表执行任何操作。sort(…)
调用,那么您如何知道排序不起作用呢?---请注意,您正在执行所有
Toast.makeText(…)
排序前调用。