// NOT OK void onNewEmailsArrivedNotRecommended(List<Email> newEmails) { emailAdapter.setEmails(newEmails); emailAdapter.notifyDataSetChanged(); } // OK void onNewDataArrivedFastRendering(List<Email> newEmails) { List<Email> oldEmails = emailAdapter.getEmails(); DiffUtil.DiffResult result = DiffUtil.calculateDiff(new EmailDiffCallback(oldEmails, newEmails)); emailAdapter.setEmails(newEmails); result.dispatchUpdatesTo(emailAdapter); }