У меня есть arrayList объектов класса.
Этот класс содержит данные, полученные от Firebase.
но я хочу удалить объект из списка, когда дочерний элемент удален в firebase, но два объекта не совпадают, поскольку снимок создает новый объект класса, содержащий те же данные. Вот код того, что я реализовал:
posts = new ArrayList<>();
childEventListener= new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
posts.add(dataSnapshot.getValue(GalleryPostModel.class));
unapprovedAdapter.notifyDataSetChanged();
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
posts.remove(dataSnapshot.getValue(GalleryPostModel.class));
unapprovedAdapter.notifyDataSetChanged();
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
};
UnApprovedDbRef.addChildEventListener(childEventListener);
Так как мне подойти к этой проблеме? что я могу сделать, чтобы удалить его из списка. Я мог бы выполнить линейный поиск в списке, но когда список станет огромным, эта задача станет очень трудоемкой.
(Невозможно использовать .removeIf, поскольку для него требуется минимальный уровень API 24, но минимальное API моего приложения - 22)