RecyclerView был создан как улучшенная замена ListView. Основные отличия следующие:1.
RecyclerView переиспользует ячейки списка при скроллинге. Для реализации этой логики используется класс ViewHolder.В
ListView тоже можно реализовать адаптер с ViewHolder, но это необязательно и требует написания бойлерплейт кода.2.
RecyclerView разделяет хранение данных и логику отображения. С RecyclerView легко изменить лэйаут в рантайме, используя различные реализации абстрактного класса LayoutManager.3. Логика отображения анимации элементов вынесена из
RecyclerView в класс ItemAnimator.В целом
RecyclerView имеет более гибкий API, чем ListView, благодаря хорошему дизайну и соответствию принципу единственной ответсвенности.