RecyclerView.Adapter#getItemId()でユニークな ID を返すRecyclerView.Adapter#setHasStableIds(true)を行う
これだけで RecyclerView.Adapter#notifyDataSetChanged() のみでもいい感じにアニメーションしてくれます。
パフォーマンスも良くなります。
ttps://www.reddit.com/r/androiddev/comments/2lr8bf/what_does_recyclerview_sethasstableids_do_and_why/*1
StackOverflow では supportsPredictiveItemAnimations() で true を返すようにする必要があると書いてありますが、 Support Library 23.4.0 時点の LinearLayoutManager では必要ありませんでした。
実演
getItemId() でユニークなID(今回はデータの primary key) を返し、全て notifyDataSetChanged() で変更を伝えています。
毎回 notifyDataInserted() 等を呼ぶよりも簡単にできて便利。
