RecyclerView can be used to implement ListView, GridView, and Staggered GridView. It is more powerful because it is just like a framework, you can use your preferred layout manager to lay out the data in RecyclerView. And specify the scroll orientation as you like. It is highly decoupling and flexible.
android.widget.GridView is used to display multiple view components on the screen by row and column distribution. It is a subclass of AbsListView. GridView also needs Adapter to provide display data, including SimpleAdapter or BaseAdapter, and the usage is very similar to ListView.