List去重

来源:互联网 发布:www.js pc.com.cn 编辑:程序博客网 时间:2024/05/01 13:05

关于List去重,之前没有做过多的了解!但是这次用了一个第三方的适配器做的时候,发现数据总是重复,至于原因感觉短时间内对于我来说是困难的。
呢么我想先记录下list去重的两种方式!
(1)HashSet

// 声明并且初始化HashSetprivate HashSet mManageSet;mManageSet = new HashSet();//数据处理DataAry mDataAry = (DataAry) data.getResult();                        if(mListData!=null&&mListData.size()>0)  //若集合不为空                            mListData.clear();  //清空集合里面的数据                        if(mDataAry !=null && mDataAry .size()>0){                            for(ManagermentBean mBean:mManagementAry){                            //将数据存放之HashSet中,对比否是包含,不包含就加进list                                if(!mManageSet.contains(mBean.getUser_id())){                                    mManageSet.add(mBean.getUser_id());                                    mListData.add(mBean);                                }                                  }                            mAdapter.notifyDataSetChanged();  //刷新适配器                        }

(2):对比对象
在实体类中对比对象

 @Override    public boolean equals(Object obj) {        if(obj instanceof ManagementBean){            return ((ManagementBean) obj).getUser_id() == this.getUser_id();        }        return false;    }

然后在相对应的activity中(用对象去做对比)

ManagementAry mBackgroundAry = (ManagementAry) data.getResult();               if(mBackgroundAry!=null && mBackgroundAry.size()>0){                    for (ManagementBean bean : mBackgroundAry){                    //比较bean,若bean是存在于这个集合中的                             if(!listData.contains(bean)){                                      listData.add(bean);                                }                            }                            mAdapter.notifyDataSetChanged();//刷新数据                        }
0 0
原创粉丝点击