kotlin
Использую DiffUtil.Callback для определения разницы между старым и новым списками данных. Метод updateItems принимает новый список, вычисляет разницу с помощью DiffUtil.calculateDiff и затем вызывает diffResult.dispatchUpdatesTo(this), чтобы адаптер мог эффективно обновить только измененные элементы.
Для корректной работы DiffUtil.Callback, важна правильная реализация методов areItemsTheSame (сравнение по уникальному идентификатору элемента, например, id) и areContentsTheSame (сравнение содержимого элементов).