private void applyAndAnimateAdditions(List<ExampleModel> newModels) {
for (int i = 0, count = newModels.size(); i < count; i++) {
final ExampleModel model = newModels.get(i);
if (!mModels.contains(model)) {
addItem(i, model);
}
}
}
Since mModels is a List, you have O(n) when use contains() method (so may be you should change it to HashSet).
Is it really beneficial to use your approach?
If you have 1000 items, you will have to go through 1000000 items two times.
But if you use notifyDataSetChanged(), you only need to redraw only visible items and walk through 1000 items only.
Or may be I don't understand something.