Проверьте, существует ли уже список объектов, сравнив его атрибут / свойство со строкой - PullRequest
0 голосов
/ 11 июня 2018

Мне нужна помощь в том, как я должен проверить, дублируется ли мой список моего объекта, путем сравнения полей или атрибутов каждого объекта с заданным строковым значением.

Мой POJO

public class AnnouncementModel extends AnnouncementsID {

  public String title, description, image, time;

  //Needed for Firebase
    public AnnouncementModel(){}

    public AnnouncementModel(String title, String description, String image, String time) {
        this.title = title;
        this.description = description;
        this.image = image;
        this.time = time;

    }
}

Я хочу сравнить мой заданный идентификатор String с идентификатором объявления следующим образом:

for(int i = 0; i < announcementList.size(); i++) {
    //Check if the deleted document ID is equal or exist in the list of announcement
    if(myGivenID.equals(announcementList.get(i).AnnouncementsID)) {

        //If yes then delete that object in list by targeting its index
        Log.d(TAG, "Removed city: " + announcementList.get(i).getTitle());
        announcementList.remove(i);
        //Notify the adapter that some item gets remove
        announcementRecyclerAdapter.notifyItemRemoved(i);
        announcementRecyclerAdapter.notifyItemRangeChanged(i,announcementList.size()-1);
     }
}

Но я не хочу зацикливать его, поскольку все, что я хочу, этопроверьте, существует ли он уже, и он мне тоже не нужен.Является ли это возможным?Я видел, что это можно сделать с помощью Java 8 Stream API, но в моем случае я не могу его использовать, поскольку он не совместим с Android SDK 23 и ниже.Кто-нибудь может дать полный пример кода для него?

1 Ответ

0 голосов
/ 11 июня 2018

Чтобы метод equals() работал так, как вы ожидаете, класс AnnouncementModel должен реализовать методы hashcode() и equals().

. Eclipse может сгенерировать их для вас.В противном случае любая базовая реализация будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...