[Android] Did you still using notifyDataSetChanged()?
Recyclerview -> DiffUtil -> AsyncListDiffer -> ListAdapter
Recyclerview
It’s time to delete the notifyDataSetChanged() code!
DiffUtil
Util class that calculate the difference two lists and outs a list of update.

- areItemsTheSame : Check whether two objects represent the same item. Commonly, check theire id equality. Check First. If this return value is false, list is flicking.
- areContentsTheSame : Check whether two items have the same data. If areItemsTheSame return is true, this method is called.

- DiffUtil.calculateDiff() : Calculate the list of update that can convert old to new one.
- dispatchUpdatesTo(adapter) : Share update event to adapter.
- You must replace list to new one before calling dispatchUpdatesTo method. Like example, clear(); addAll()
AsyncListDiffer
Helper for computing the difference between two lists via DiffUtil on a background thread.

- DiffUtil.ItemCallback : Callback for calculating the diff between two non-null items in a list.

- submitList() : Pass a new List to the AdapterHelper. Adapter updates will be computed on a background thread.
- currentList : Check current list items.
ListAdapter
RecyclerView.Adapter base class and a convenience wrapper around AsyncListDiffer.

- You don’t need to call getItemCount() override method anymore.
- You can call getItem(position).
Whey we need to use ListAdapter?
- You can update changed items of the list easily.
- You don’t need to care about thread.
- Code is simple!