【问题标题】: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,欢迎来到 stackoverflow。恐怕你的问题代码有点多,请尝试创建一个minimal, reproducible example
  • @itaishz 感谢您的回复我已经更新了我的问题。
  • 为什么不按 id 过滤呢?
  • 您好,实际上没有过滤我的卡片视图中的项目仅显示 ID,但我从 API 获取重复项目,所以我想避免这些重复项。

标签: android laravel api android-studio


【解决方案1】:

您可以尝试将它们保存在 Set 而不是 List 中,这基本上是相同的,但在一组中每个对象都可以保存一次,因此即使您也不能有重复项我愿意。

【讨论】:

  • 您好,我尝试将 List 转换为 Set,但众所周知,在 BindViewHolder 上的适配器中,我们使用 list.get(position).getId();但是使用 Set 我无法得到它。
猜你喜欢
  • 2014-09-30
  • 2011-01-13
  • 2016-01-28
相关资源
最近更新 更多