Does iterating through a large data set in a Map each time i click impact the performance?
Technical improvements


use albumMap.values() to get a Collection&lt;Album&gt; directly instantiated as list, which supports positional access get(index). So no need for array and filling loop. See Listing 1.
use some of Android's ListView interfaces which usually provide a convenient method on their underlying data model like getItemAtPosition(position). See Listing 2.


Listing 1: Q: How to convert map to list

List&lt;Album&gt; albums = new ArrayList&lt;Album&gt;(albumMap.values());


Listing 2: Vogella's Tutorial on Android's ListView

ListView albumsView = (ListView) findViewById(R.id.listview);

// fill albums data to model (adapter implementation)
albumsView.setAdapter(adapter)

albumsView.setOnItemClickListener(new OnItemClickListener() {

  @Override
  public void onItemClick(AdapterView&lt;?&gt; parent, final View view, int position, long id) {
    final Album album = (Album) parent.getItemAtPosition(position);
    // your implementation
  }
}


Design improvements


album.getAlbum() gets the title of an album, so rename property|getter to title|getTitle()
keep the event-handler short and extract all action/intend creation into separate method


References


Answer on using RecycleView with OnItemClickListener
Tutorial: Android working with RecyclerView
Android Official Guide on AdapterView