List去重

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

// 声明并且初始化HashSet
private 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();//刷新数据
                        }

猜你喜欢

转载自blog.csdn.net/x_nuo/article/details/53256963