The main city beach, La Barceloneta, has very few topless. WAY crowded with school kids and too much flotsam, not recommemded. MUCH better is Casteldefells, just 10 minutes further South past the airport. MUCH better beaches AND eye candy. On weekends parking a challenge. Go early.
But there is NOWHERE like Spain for eye candy.
Ibiza tops. Best beaches Formentera, just South of Ibiza.