проблемой )
Есть RecyclerView и есть некий Repository внутри которого лежит потокобезопасная коллекция, например, ConcurrentSkipListMap<Long, User>, ну или List какой нибудь.
Adapter в методе OnBindViewHolder(... , int position) берет элементы по position из коллекции
и вот тут проблема ... коллекция может измениться между чтениями таким образом, что я могу получить дубликат элемента. Например, у меня в коллекции 10 элементов. Я читаю 3 элемент. Другой поток thread_1 убивает все элементы начиная с 3 включительно. thread_2 добавляет несколько элементов, среди которых 3 элемент, который мы уже счиатли становится 4 элементом. Теперь thread main читает 4 элемент. Но, этот элемент у нас уже есть. И получается дублирование элементов при отображении.
Вобщем, либо я сильно туплю, либо лыжи не едут ))) Кто, что думает ?))) 🤓
а почему recyclerview должен знать, что в репозитории лежит list или что-то другое? ну и брать из репозитория по позиции тоже не очень, она же может меняться даже для одного и того же элемента и без нескольких потоков
Список может содержать много элементов?
Обсуждают сегодня