从列表中删除重复项?
Posted
技术标签:
【中文标题】从列表中删除重复项?【英文标题】:remove duplicates from List? 【发布时间】:2021-04-02 10:20:15 【问题描述】:我从适配器中的 API 获取重复项,但我想从我的适配器中删除这些重复项,并在知道如何打印后将其打印出来?提前致谢。 得到:在我的卡片视图中重复行但通过 API。 想要:只想打印一次并删除那些重复项。
我的适配器:
@Override
public void onBindViewHolder(@NonNull catView holder, int position)
holder.id.setText(oilResponses.get(position).getId());
@Override
public int getItemCount()
if (oilResponses.size() != 0)
return oilResponses.size();
return 0;
主活动:
private void oilList()
Api.getClient().do_oil(CAR_ID)
.observeOn(androidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(new Observer<List<OilResponse>>()
@Override
public void onSubscribe(Disposable d)
@Override
public void onNext(@NotNull List<OilResponse> responses)
oilAdapter = new OilAdapter(responses);
oilRecycler.setAdapter(oilAdapter);
@Override
public void onError(@NotNull Throwable e)
@Override
public void onComplete()
);
【问题讨论】:
你好 Zaidi,欢迎来到 ***。恐怕你的问题代码有点多,请尝试创建一个minimal, reproducible example。 @itaishz 感谢您的回复我已经更新了我的问题。 为什么不按 id 过滤呢? 您好,实际上没有过滤我的卡片视图中的项目仅显示 ID,但我从 API 获取重复项目,所以我想避免这些重复项。 【参考方案1】:您可以尝试将它们保存在 Set
而不是 List
中,这基本上是相同的,但在一组中每个对象都可以保存一次,因此即使您也不能有重复项我愿意。
【讨论】:
您好,我尝试将 List 转换为 Set,但众所周知,在 BindViewHolder 上的适配器中,我们使用 list.get(position).getId();但是使用 Set 我无法得到它。以上是关于从列表中删除重复项?的主要内容,如果未能解决你的问题,请参考以下文章