Ответ
areItemsTheSame проверяет, ссылаются ли объекты на один и тот же элемент данных (например, по ID). Если false, DiffUtil считает элементы разными и заменяет их.
areContentsTheSame проверяет, изменилось ли содержимое элемента (например, поля объекта). Если false, элемент будет обновлен (с вызовом bind в адаптере).
override fun areItemsTheSame(oldItem: User, newItem: User): Boolean {
return oldItem.id == newItem.id // Проверка ID
}
override fun areContentsTheSame(oldItem: User, newItem: User): Boolean {
return oldItem.name == newItem.name // Проверка полей
}