map
will load the entire array, then iterate to collect the screen_names.
pluck
asks the database for exactly what it needs and returns an array of just those items.
So in case of pluck, performance is gained and less memory is used for large datasets (like production).
Never use map on active record relations, use pluck instead.
If you're using pluck to pass values to a where use select instead
User.where(screen_name: users.select(:screen_name)).empty?
http://6ftdan.com/allyourdev/2015/05/13/rails-dont-pluck-unnecessarily/
http://hashrocket.com/blog/posts/rails-quick-tips-easy-activerecord-optimizations