Обновление ArrayList из SharedPreferences (используя TinyDB), используя содержит, но всегда возвращать false
Я спасаю ArrayLists
в SharedPreferences
в onPause
из моего MainActivity
, Я делаю это следующим образом:
TinyDB tinyDB = new TinyDB(activity);
ArrayList<Object> saveUserList = new ArrayList<>();
for (User user : UsersArrayList.getInstance().getUsersList()) {
saveUserList.add(user);
}
tinyDB.putListObject("userList", saveUserList);
и вызвать обновление в моем onCreateView
следующее:
TinyDB tinyDB = new TinyDB(activity);
ArrayList<User> userList = new ArrayList<>();
for (Object object : tinyDB.getListObject("userList", User.class)) {
userList.add((User) object);
}
for (User user : userList) {
if (!UsersArrayList.getInstance().getUsersList().contains(user)) {
UsersArrayList.getInstance().getUsersList().add(user);
}
}
.contains(user)
однако всегда возвращает false и продолжает добавлять одни и те же объекты в мой массив. И я хочу только один раз, который там не будет добавлен. Почему оператор содержимого здесь работает неправильно?
Вот класс с ArrayList
Я сохраняю дату и хочу обновить:
public class UsersArrayList {
public ArrayList<User> usersList;
private UsersArrayList() {
usersList = new ArrayList<User>();
}
public ArrayList<User> getUsersList() {
return usersList;
}
private static UsersArrayList instance;
public static UsersArrayList getInstance() {
if (instance == null) instance = new UsersArrayList();
return instance;
}
}