// 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);
}