【问题标题】:How to remove duplicates from ArrayList<HashMap<String,String>>()如何从 ArrayList<HashMap<String,String>>() 中删除重复项
【发布时间】:2018-01-06 12:40:22
【问题描述】:

在我的改造服务响应中,我使用ArrayList&lt;HashMap&lt;String,String&gt;&gt;()HashMap&lt;String, String&gt;() 来显示一些值。显示数据时,它是重复的。 在调用该函数之前,我也很清楚列表list.clear()

ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String,String>>();

HashMap<String,String> hashmap = new HashMap<String, String>();



    public void displayList(){
            list.clear();

            WebserviceAPI apiService =retrofit.create(WebserviceAPI.class);
            Call<OrderDetailsResponse> call = apiService.displayOrder("orderdetails",token_acces,id_order);
            call.enqueue(new Callback<OrderDetailsResponse>() {
                @Override
                public void onResponse(Call<OrderDetailsResponse> call, Response<OrderDetailsResponse> response) {

                        OrderDetailsResponse result = response.body();
                        List<OrderDetails> data=result.getData();
                        returnstatus=result.isStatus();
                        msg= result.getMessage();

                        if(returnstatus){
                            for (OrderDetails a: data){

                                hashmap.put(FIRST_COLUMN, a.getProduct_name());
                                hashmap.put(SECOND_COLUMN, a.getProduct_quantity());
                                hashmap.put(THIRD_COLUMN, a.getOriginal_product_price());

                                list.add(hashmap);
                                Log.d("ressorder",""+list);


                            }
                                adapter=new ListViewAdapter(getActivity(), list);
                                listView.setAdapter(adapter);

                        }
                }

                @Override
                public void onFailure(Call<OrderDetailsResponse> call, Throwable t) {
                    Log.d("fragerr",""+t.getMessage());
                    progress.dismiss();

                }
            });

        }

我的原木猫

[{Second=1, First=Pen, Third=27.00}, {Second=1, First=Pen, Third=27.00}, {Second=1, First=Book, Third=15.00}, {Second=1, First=Book, Third=15.00}, {Second=1, First=Pencil, Third=12.00}, {Second=1, First=Pencil, Third=12.00}]

重复两次

【问题讨论】:

  • 为什么在for循环中初始化适配器?
  • FIRST_COLUMN, SECOND_COLUMN..的值是多少?
  • 我已经编辑了我的问题。 FIRST_COLUMN 代表产品名称 (pen,book,pencil),SECOND_COLUMN 代表数量 (1,1,1),THIRD_COLUMN 代表价格 (27.00,15.00,12.00)。但这些值在我的列表中是 twise。请参阅 logcat
  • 您确定需要 HashMap 列表吗? HashMap 是一个非常昂贵的内存对象

标签: android arraylist hashmap


【解决方案1】:

您似乎多次将相同的哈希图添加到您的列表中。尝试在调用hashmap = new HashMap&lt;String, String&gt;()的循环的每次迭代中创建一个新的哈希图

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    • 1970-01-01
    相关资源
    最近更新 更多