关于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();//刷新数据
}