Обновление 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;
    }
}

0 ответов

Другие вопросы по тегам