通过将其属性/属性与字符串进行比较,检查对象列表是否已存在

时间:2018-06-11 13:58:58

标签: java android loops equals

我需要一些帮助,如何通过将每个对象字段或属性与给定的字符串值进行比较来检查我的对象列表是否会重复。

我的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 id与这个

的公告ID进行比较
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 :(得分:0)

要使equals()方法按预期工作,类AnnouncementModel需要实现方法hashcode()equals()

Eclipse可以为您生成它们。否则任何基本实现都会有效。