davidnum95: добавьте, вам никто не мешает. Я не стал - потому что уже упомянут butterknife, и, на мой взгляд, концепция двустороннего связывания databinding не очень сочетается с Rx.
Тогда уж DataBinding, Room, LiveData, ViewModel.
Толстый Лорри: не понял про дубликаты.
Массив, адресуемый чарами, будет иметь время поиска О(1), мапа - O(ln)
Зато будут накладные расходы на организацию дерева.
Код будет абсолютно таким же, за исключением объявления мапы и обхода её в конце.
Просто решил докопаться :-D
Artem Gapchenko: А какое у вас "большое" количество моделей? Если их тысячи, то показывать их в одном списке в любом случае бессмысленно.
И попробуйте посчитать, сколько весят все ваши модели против парочки битмапов.
Ну и у курсорадаптера есть фатальный недостаток - он не поднимает в память всё выборку, там есть некие страницы (мегабайт, если я не ошибаюсь), по исчерпанию которых он лезет в БД на мейнтреде.