android 分页数据 LinkedHashSet及ArrayList两种去重方法

第一种(
mDatasTemp为当前页数据,
deals为总数据
if (mDatasTemp != null && mDatasTemp.size() > 0) {
    boolean isEqual = false;
    for (UserDeal uds : mDatasTemp) {
        isEqual = false;
        for (UserDeal udsTmp : deals) {
            if (uds.dealId.equals(udsTmp.dealId)) {
                isEqual = true;
                break;
            }
        }
        if (!isEqual) {
            deals.add(uds);
        }
    }
}

第二种
mCopyDatas
 
 
为当前页数据,
 
 
deals为总数据
LinkedHashSet<String> mFiltSet = new LinkedHashSet(); // 用于确定数据唯一,过滤重复数据

if (mPage == 1) {
    mFiltSet.clear();
    this.mDatas.clear();
    this.isRefresh = false;
}
// select = this.mDatas.size();
// KLog.d("CD", this.mDatas.size() + "");
KLog.d("CD2", this.mCopyDatas.size() + "");
// this.mDatas.addAll(mCopyDatas);

Iterator<MoonShowComment> iterator = mCopyDatas.iterator();
while (iterator.hasNext()) {
    MoonShowComment item = iterator.next();
    if (!mFiltSet.contains(item.getId())) {
        // 如果不包括当前aStr,则加入数据,并保存到LinkedHashSet        mDatas.add(item);
        mFiltSet.add(item.getId());
    }
}

猜你喜欢

转载自blog.csdn.net/csdnwr/article/details/52957022